经常在工作中要求网页做这样的处理判断:针对无线端的网页,我们需要兼容一种异于PC端的网页效果。

如下代码就可以实现无线端的判断:

var mobs = ['android', 'ipad', 'ipod', 'phone', 'mobile', 'mobi'],
isMob;
for (var i = 0; i < mobs.length; i++ ) {
if (navigator.userAgent.toLowerCase().indexOf(mobs[i]) > -1 ) {
isMob = true;
break;
}
}
if (isMob) {//无线端

……

}

进一步优化代码:

// 是否苹果设备
var isApple = ['iphone', 'ipad'].some(function(keyword) {
return userAgent.indexOf(keyword) !== -1;
});
// 是否移动设备
var isMobileDevice = isApple ||
['phone', 'ipad', 'android', 'mobile', 'mobi'].some(function(keyword) {
return userAgent.indexOf(keyword) !== -1;
});
// 是否PC的IE浏览器
var isIE;
if (!isMobileDevice) {
isIE = userAgent.indexOf('msie') !== -1 || userAgent.indexOf('trident') !== -1;
}

注意到javascript数组方法some()的使用:

语法

var someElementPassed = array.some(callback[, thisObject]);

参数说明

callback: 要对每个数组元素执行的回调函数。
thisObject : 在执行回调函数时定义的this对象。

功能说明

对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。

回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。

如参数 thisObject 被传递进来,它将被当做回调函数(callback)内部的 this 对象,如果没有传递或者为null,那么将会使用全局对象。

some 不会改变原有数组,记住:只有在回调函数执行前传入的数组元素才有效,在回调函数开始执行后才添加的元素将被忽略,而在回调函数开始执行到最后一个元素这一期间,数组元素被删除或者被更改的,将以回调函数访问到该元素的时间为准,被删除的元素将被忽略。

最新文章

  1. 461. Hamming Distance and 477. Total Hamming Distance in Python
  2. Visual Studio跨平台开发Xamarin
  3. 关于a和b不用第三变量交换值的问题
  4. C# 获取地址栏的地址(URL)
  5. eclipse(Version: Neon Release (4.6.0))安装hibernate tools
  6. B/S一些小知识及常用控件
  7. Android OTG支持USB读卡器
  8. 高效jQuery
  9. net core VS goang web
  10. 十二周项目三(4)——出口fibnacci第一序列20的数量
  11. Facebook 网页应用图文设置教程
  12. CYQ.data 框架结构
  13. java异常常见面试问题
  14. 2017-12-19python全栈9期第四天第三节之iterable可迭代对象join之字符串和列表转换成字符串和range
  15. 使用jdom进行xml解析,网络抓包
  16. mysql 5.7配置项最详细的解释
  17. NFS 配置文件
  18. ZC_C++类函数指针_模拟_Delphi类函数指针
  19. zabbix监控多实例tomcat--不使用JMX
  20. malloc、calloc和realloc比较

热门文章

  1. 初学者-ASCII码 数字转字母
  2. js中arguments的用法
  3. 瘋子C语言笔记(结构体/共用体/枚举篇)
  4. web api authentication
  5. highchart导出功能的介绍更改exporting源码
  6. Node聊天程序实例05:index.html和style.css
  7. android线程登录
  8. Android Studio -修改LogCat的颜色
  9. 简单的canvas时钟
  10. iOS - Regex 正则表达式