【发布时间】:2012-09-18 08:17:37
【问题描述】:
我需要根据用户是在 Android 浏览器还是 iOS 浏览器上查看移动网站上的一些按钮和文本。是否有可靠的方法来执行检查?
【问题讨论】:
标签: javascript jquery html browser
我需要根据用户是在 Android 浏览器还是 iOS 浏览器上查看移动网站上的一些按钮和文本。是否有可靠的方法来执行检查?
【问题讨论】:
标签: javascript jquery html browser
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());
}
};
【讨论】:
我会使用navigator.useragent 属性来获取用户代理字符串,对其进行解析,然后检测操作系统。
Here 是一个例子。
更新:
由于这个问题很受欢迎,我想我会在我的答案中添加一些额外的信息。
一般来说,浏览器嗅探几乎从来都不是最好的方法。为什么?嗯,有很多原因,但这里有两个很好的原因:
话虽如此,如果您真的需要使用浏览器/操作系统检测,请不要重新发明轮子,也不要尝试自己动手 - 您将进入一个痛苦而晦涩的世界警告!我建议你使用像 WhichBrowser 这样的库,它会为你提供一个方便的 JavaScript 对象,其中包含有关操作系统、浏览器、渲染引擎和设备的信息。
【讨论】:
您可以使用导航器对象:http://www.w3schools.com/js/js_browser.asp,然后根据导航器的属性使用 if 语句。
【讨论】:
我已经用了一段时间了。基于移动设备的简单检查以查看返回 true 或 false。
var isMobile = (/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Windows Phone/i.test(navigator.userAgent)) ? true : false;
【讨论】: