可能重复:
在Javascript中进行浏览器检测的最佳方法是什么?
我想基本上做以下(在JavaScript或PHP中):
if (desktop browser) {
do x;
}
else { // mobile browser
do not do x;
}
众所周知,使用浏览器 不推荐检测方法。更好的解决方案是使用a 能力测试。我的问题是,随着移动浏览器变得更智能,功能与桌面版一样强大,从非桌面浏览器中过滤桌面的理想排他性能力检测是什么?
我认为撤销条件检查,即 if (mobile browser) {} else ...
可能会证明更有问题,对吧?
从谷歌搜索到了什么 一个美丽的网站:
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
if(isMobile.any()){
// Mobile!
} else {
// Not mobile
}
我不认为特征检测是 办法 优于用户代理嗅探,这实际上很糟糕。但是,如果您正在检测功能以确定设备是否被视为移动设备,那么您将面临一系列新问题。
你不能检查 pixel-ratio
因为新的台式电脑很可能是“视网膜”或超级高清。你不能检查 device-orientation
因为它不再是手机独有的东西了。您无法检查(如果可以)陀螺仪,因为某些笔记本电脑可能会返回值。
构建适用于所有平台的网站,而不是试图将它们分开!
我想你正在寻找 get_browser() 在PHP中的功能。
尝试通过在browscap.ini文件中查找浏览器的信息来确定用户浏览器的功能。