一些有用性较高的js方法_.docx

上传人:啊飒飒 文档编号:11544142 上传时间:2021-08-22 格式:DOCX 页数:13 大小:16.83KB
返回 下载 相关 举报
一些有用性较高的js方法_.docx_第1页
第1页 / 共13页
一些有用性较高的js方法_.docx_第2页
第2页 / 共13页
一些有用性较高的js方法_.docx_第3页
第3页 / 共13页
一些有用性较高的js方法_.docx_第4页
第4页 / 共13页
一些有用性较高的js方法_.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一些有用性较高的js方法_.docx》由会员分享,可在线阅读,更多相关《一些有用性较高的js方法_.docx(13页珍藏版)》请在三一文库上搜索。

1、一些有用性较高的js方法_ 这篇文章主要为大家分享了一些有用性较高的js方法,便利大家开发时用法,感爱好的小伙伴们可以参考一下 本文分享下自己平常积累的一些有用性较高的js方法,供大家教导和评价。本想分篇介绍,发觉有点画蛇添足。整理了下也没多少拿得出手的方法,自然有一些是网上看到的个人觉得很有有用性的方法,在这里一起贴出来供大家探讨。 1、点击返回若没有之前页面则跳转到规定页面 首先是客户需求中要求单个分享到微信的页面,点击返回可以跳转到网站首页。 期间这个功能有和客户探讨过,能否在页面中添加回到首页按钮进行跳转。 可是这种方式无法作用到每个页面,并且指明需要该功能的分享页面没有可以放得下一个

2、图标,又不影响美观的地方了。于是,本人只好是寻求度娘。度娘上也尽是一些打着擦边球的功能。 所以通过自己的尝试 有了以下代码: /返回之前没页面则返回首页 function pushHistory() /猎取扫瞄器历史记录栈中的记录个数 /由于页面加载的时候就会将当前页面压入栈中 所以推断是否小于2 if (history.length 2) var state = title: index, url: getHttpPrefix + index.html ; window.history.pushState(state, index, getHttpPrefix + index.html);

3、state = title: index, url: ; window.history.pushState(state, index, ); 再将下面这段代码加入页面ready大事中: setTimeout(function () pushHistory() window.addEventListener(popstate, function (e) 5 if (window.history.state !=nullwindow.history.state.url != ) location.href = window.history.state.url ); , 300); 具体功能就是推断

4、之前是否有页面,若没有就将制定网站的链接地址插入state(这里用的是首页),然后再监听popstate大事,进行相应功能的操作。 这段代码可能还有一些小问题,所以准备是贴出来有人可以一起探讨和完善。 2、便捷log方法 信任大家页面调试的时候早已经厌烦了console.log()略显啰嗦的敲打长度。有些人可能会用法快捷输入进行快速输入(如:输入cl编译环境智能跳出console)。不过在等到项目发布的时候 看到很多遗忘删掉的调试信息,还是会难以清除。所以本人干脆写了个方法 用来特地处理这种状况。 function lll() /全局变量_debug用来掌握调试信息开关 if (_debug)

5、 var arr = ; /arguments是方法的参数集合 这样做是为了不限制参数的个数,便利调试 for (_item in arguments) /由于个人习惯字符串信息就显示在一行里所以对字符串进行了筛选拼接 if (typeof _item = String) arr.push(_item) else console.log(_item) if(arr.length0)console.log(arr.join(,) 其实还有点不满足的就是 没方法自动猎取到参数的名字不然就可以这样用法: var a = 123, b = 333, obj = name: name, content:

6、 . lll(a, b, obj)/调试信息为: a:123,b:123 /obj: / name: name, content: . 看起来是不是就更加明白点了? 3、猎取扫瞄器定位信息(支持移动端) 接到许多的项目都是移动端定制开发的,所以常常会用到需要定位当前地点的信息。 可是网上许多的接口都是需要引用一段外部js的比如百度的api,微信的api等等。 我接下来介绍一种不需要引用外部js,只需要向外部API链接提交参数就可以猎取定位的方法: if (getCookie(position) = ) if (navigator.userAgent.indexOf(MicroMessenger

7、) -1) /推断是否是微信端,具体视状况而定 navigator.geolocation.getCurrentPosition(function getPositionSuccess(position) /通过html5的navigator.geolocation接口 猎取扫瞄器的当前定位 (移动端最精准,PC会有较大偏差) var lat = position.coords.latitude;/猎取过来的当前纬度 var lng = position.coords.longitude;/猎取过来的当前经度 var arr = arr.push(lng) arr.push(lat) /ale

8、rt(position) $.ajax( type: GET, url: l(我在: + data.result.addressComponent.city) setCookie(position, data.result.addressComponent.city, 24 * 60 * 30) ) , function (error) /alert(error.message); , ) 这段代码是本人实际项目中的一段代码,由于需要推断是否已经猎取到定位信息,不能每次页面加载都进行一次猎取 所以我用Cookie将定位信息保存了起来 刚开头的时候推断是否有当前的定位信息cookie,没有。再推

9、断是否是在移动端(由于项目是微信端的,所以我这里只是做了微信端的验证) 然后再调用html5供应的接口参数 进行数据传输,将百度返回过来的jsonp进行处理。由于我项目里只需要猎取定位的城市信息 所以这里只是举了猎取城市的例子。 4、猎取字符串数值部分 由于项目上我只负责功能的实现,所以许多页面并不是我自己搭的,但是 又会有些生手来搭出一些很不好猎取标签内的数值的状况。 比如: div原价998现在只要 a99.8!/a /div 像这种页面,有时候要猎取里面的998或者98。就会变的有点麻烦。 通过我下面供应的方法,可以很便利的解决这种状况 function getNum(text) var

10、 value = text.replace(/(0-9)./ig, ); return parseFloat(value); 这段方法很简短,实质上就是通过正则去匹配。将非数字或者小数点的字符替换成空的字符串(事实上就是删除) 这样返回过来的数据就是我们想要的数字,我最终又进行了一次转换为浮点型的操作,这是为了便利将数据进行后期处理。比如保留两位小数,四舍五入 等等。 5、猎取设备信息 /#region 猎取设备信息 var browser = versions: function () var u = navigator.userAgent, app = navigator.appVersi

11、on; return trident: u.indexOf(Trident) -1, /IE内核 presto: u.indexOf(Presto) -1, /opera内核 webKit: u.indexOf(AppleWebKit) -1, /苹果、谷歌内核 gecko: u.indexOf(Gecko) -1 u.indexOf(KHTML) = -1,/火狐内核 mobile: !u.match(/AppleWebKit.*Mobile.*/), /是否为移动终端 ios: !u.match(/(i;+;( U;)? CPU.+Mac OS X/), /ios终端 android: u

12、.indexOf(Android) -1 | u.indexOf(Linux) -1, /android终端或者uc扫瞄器 iPhone: u.indexOf(iPhone) -1, /是否为iPhone或者HD扫瞄器 iPad: u.indexOf(iPad) -1, /是否iPad webApp: u.indexOf(Safari) = -1, /是否web应当程序,没有头部与底部 weixin: u.indexOf(MicroMessenger) -1, /是否微信 (2021-01-22新增) : u.match(/s/i) = /是否 ; (), language: (navigat

13、or.browserLanguage | navigator.language).toLowerCase() /实际用法的时候如下: if (browser.versions.webKit) /为苹果 谷歌内核执行的代码. /#endregion 这里也是分享一个不是我写的 也是在网上看到的一个封装成对象的推断设备信息的方式。 个人觉得很好用,于是也拿来跟大家分享一下。 字符串扩展方法以下介绍的都是对String类型数据进行附加的方法 1.将字符串超出指定长度部分隐蔽 /* 将字符串以指定长度显示,多余部分以省略号显示(len-显示长度 defaultStr-若字符串为空显示的字符串) */

14、String.prototype.splitString = function (len, defaultStr) var result = ; var str = this.toString() if (str) str = str.trim() if (str.length len) result = str.substring(0, len) + .; else result = str; else result = defaultStr; return result; 说明已经够简洁明白了。不理解的可以留言,博主看到肯定回复。 2.将字符串长度减一 /长度减一 String.proto

15、type.delLast = function () return this.substring(0, this.length - 1) 有些人可能会觉得 这个方法有点脱裤子放屁的嫌疑,其实真正的项目中 会常常需要这个操作。 与其写一段长长的substring 不如咱们写个方法将代码精简,并且在码代码的时候 也很便利 挺直在对应的字符串后面 轻轻一点,选择delLast就行。 一句话,用过都说好! 3.将数字型字符串补全指定长度 /给数字型字符串固定指定长度 String.prototype.addZero = function (n) var num = this var len = num

16、.toString().length; while (len n) num = 0 + num; len+; return num; 看说明可能有点不理解 其实就是加入这个字符串是 2,通过这个扩展方法 可以这么操作 2.addZero(2) 那么返回过来的就是02这样的字符串。 用过都说好! 4.将数据库DateTime类型转换为Date String.prototype.DTD = function () return new Date(Date.parse(this.toString().replace(/-/g, /) 5.用户昵称省略 /用户昵称省略 String.prototype.telHide = function () var name = this return name.substr(0, 1) + * + name.substring(name.length - 1, name.length) 以上就是本文的全部内容,盼望对大家的学习有所关心。 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1