在移动Safari中检测iOS5 (javascript优先)
Detect iOS5 within mobile Safari (javascript preferred)
iOS5中引入的新固定定位破坏了我的web应用程序,我需要一种检测iOS5用户的方法。
如何检测iOS5?浏览器代理字符串是什么?JavaScript的首选。谢谢!
来自SO问题:什么是iOS 5 user-agent字符串:
iPhone:iPad:Mozilla/5.0 (iPhone;CPU iPhone OS 5_0 like Mac OS X AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
Mozilla/5.0 (iPad;CPU OS 5_0如Mac OS X) AppleWebKit/534.46 (KHTML,如Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
这是测试ios5的方法。
<script type="text/javascript">
if (navigator.userAgent.match(/OS 5(_'d)+ like Mac OS X/i))
// this helps detect minor versions such as 5_0_1
document.write("You have iOS 5! Aren't you special!");
</script>
我进一步发展了chown的答案,并检查了任何iOS5设备,无论是5还是5.0.1或任何更高版本:
var ios5 = navigator.userAgent.match(/OS 5_[0-9_]+ like Mac OS X/i) != null;
if(ios5) {
// Now you can do specific stuff for devices on any version of iOS5
}
您可以使用Modernizr和Web worker检测,因为它们在iOS 5之前不可用。你仍然需要排除Android,因为Android 2.0+已经支持它们了。这将为您提供与iOS6的前向兼容性,这是您无法使用已提供的任何用户代理解析获得的。
你需要考虑"CPU OS 5_0"answers"CPU iPhone OS 5_0",粗糙和肮脏的正则表达式:
<script type="text/javascript">
if (navigator.userAgent.match(/(iPad|iPhone);.*CPU.*OS 5_'d/i))
{
alert("On iOS 5")
}
else
{
alert("Not on iOS 5"); //could be either 4- or 6+
}
</script>
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- Javascript中模数的优先顺序是什么?
- 在 JavaScript 中,命名函数优先于匿名函数
- VIM JavaScript缩进插件-逗号优先
- 使用带有Javascript Interop的Clojuescrapt线程优先宏
- 联合/交叉数据可视化- javascript优先
- 如何在javascript中优先执行dom
- 如何在JavaScript字符串转换之前优先考虑sum
- 将广度优先搜索移植到Javascript
- 响应式设计与移动优先和禁用javascript
- 在移动Safari中检测iOS5 (javascript优先)
- 使(可能是动态加载的)元素通过JavaScript可点击,但优先考虑其中包含的链接
- 广度优先搜索在Javascript
- JavaScript自定义排序函数,对字母进行优先排序
- JavaScript二进制树w/广度优先搜索
- 优先顺序Javascript/PHP/Jquery Json-从用户那里获取浏览器res