浏览器中最简单的方法来检测手机

时间:2013-03-27 19:52:55

标签: javascript jquery-mobile mobile

我使用脚本生成器 - http://detectmobilebrowsers.com/ - 来检测手机,以便将网页重定向到具有手机特殊模板的子域。

我只对手机感兴趣。 Ipad,Android平板电脑不会被重定向。我需要知道的是,这个脚本是否涵盖了IPhone 4和IPhone 5,因为我没有这些模型来测试它。无论如何,我已经使用开发人员菜单 - 用户代理 - Safari ios 4.3.3 Iphone在Safari上进行了测试,并根据需要重定向页面。这对我想要的还是足够的,或者我也应该使用以下脚本:

var iphone4 = (window.screen.height == (960 / 2)) ? true : false;
var iphone5 = (window.screen.height == (1136 / 2)) ? true : false;
if (iphone4 && iphone5) {
    parent.location.href='http://www.mobile.mysite.com';
}

2 个答案:

答案 0 :(得分:5)

是的,来自http://detectmobilebrowsers.com/的正则表达式将检测iPhone(以及iPod Touch)所有版本...... ip(hone|od)是与之匹配的正则表达式部分。

如果您想要一个仅适用于iPhone / iPod的脚本,您可以将上述脚本修改为:

(function (a, b) { if (/ip(hone|od)/i.test(a)) window.location = b }
)(navigator.userAgent || navigator.vendor || window.opera, 'http://www.mobile.mysite.com');

编辑:

或者使用此脚本来检测移动设备

(function (a, b) { if (/Mobi/.test(a)) window.location = b }
)(navigator.userAgent || navigator.vendor || window.opera, 'http://www.mobile.mysite.com');

基于Browser detection using the user agent | MDN的建议:

  

我们建议在用户代理中的任何位置查找字符串“Mobi”以检测移动设备。如果设备足够大以至于没有标记为“Mobi”,那么您应该为桌面站点提供服务(最佳做法是支持触摸输入,因为有更多台式机出现在触摸屏上)。

答案 1 :(得分:1)

这应该有效。

var bIsMobile = (navigator.userAgent.toLowerCase().indexOf("mobile") != -1 && navigator.userAgent.toLowerCase().indexOf("ipad") == -1);