可能重复:
What is the Best way to do Browser Detection in Javascript?
我想基本上执行以下操作(在JavaScript或PHP中):
if (desktop browser) {
do x;
}
else { // mobile browser
do not do x;
}
众所周知,使用浏览器detection method is not recommended。更好的解决方案是使用capability testing。我的问题是,随着移动浏览器变得更智能,功能与桌面版一样强大,从非桌面浏览器过滤桌面的理想排他性能力检测是什么?
我认为撤销条件检查,即if (mobile browser) {} else ...
可能会更有问题,对吗?
答案 0 :(得分:14)
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
,因为它不再是移动设备的独特之处。您无法检查(如果可以)陀螺仪,因为某些笔记本电脑可能会返回值。
构建适用于所有平台的网站,而不是试图将它们分开!
答案 1 :(得分:0)
我认为你在php中寻找get_browser()函数。
尝试通过在browscap.ini文件中查找浏览器的信息来确定用户浏览器的功能。