我使用脚本生成器 - 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';
}
答案 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);