我需要在移动网站上更改一些按钮和文字,具体取决于用户是在Android或iOS浏览器上查看。有可靠的方法来执行检查吗?
答案 0 :(得分:143)
var isMobile = {
Windows: function() {
return /IEMobile/i.test(navigator.userAgent);
},
Android: function() {
return /Android/i.test(navigator.userAgent);
},
BlackBerry: function() {
return /BlackBerry/i.test(navigator.userAgent);
},
iOS: function() {
return /iPhone|iPad|iPod/i.test(navigator.userAgent);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
}
};
答案 1 :(得分:13)
我会使用navigator.useragent
属性获取useragent-string,解析它并检测操作系统。
Here就是如何做到这一点的一个例子。
<强>更新强>
由于这个问题很受欢迎,我想我会在答案中添加一些额外的信息。
一般来说,浏览器嗅探几乎不是最好的方法。为什么?嗯,原因有很多,但这里有两个好的原因:
话虽如此,如果你真的需要使用浏览器/操作系统检测,那么不要重新发明轮子,不要试图自己做 - 你将陷入一个痛苦和模糊的世界注意事项!我建议您使用像WhichBrowser这样的库,它将为您提供一个方便的JavaScript对象,其中包含有关操作系统,浏览器,渲染引擎和设备的信息。
答案 2 :(得分:1)
您可以使用导航器对象:http://www.w3schools.com/js/js_browser.asp,然后根据导航器的属性使用if语句。
答案 3 :(得分:0)
我已经使用了一段时间了。基于移动设备进行简单检查以查看返回true或false。
var isMobile = (/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Windows Phone/i.test(navigator.userAgent)) ? true : false;