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

Javascript 在浏览器中检测手机的最简单方法,javascript,jquery-mobile,mobile,Javascript,Jquery Mobile,Mobile,我使用一个脚本生成器来检测移动电话,以便将页面重定向到一个子域,该子域有一个用于电话的特殊模板 我只对手机感兴趣。Ipad、Android平板电脑将不会被重定向。我只需要知道这个脚本是否涵盖了iPhone4和iPhone5,因为我没有这些模型来测试它。无论如何,我已经使用开发者菜单-用户代理-SafariiOS4.3.3iPhone在Safari上进行了测试,页面会根据需要重定向。这是否足以满足我的需要,或者我也应该使用以下脚本: var iphone4 = (window.screen.hei

我使用一个脚本生成器来检测移动电话,以便将页面重定向到一个子域,该子域有一个用于电话的特殊模板

我只对手机感兴趣。Ipad、Android平板电脑将不会被重定向。我只需要知道这个脚本是否涵盖了iPhone4和iPhone5,因为我没有这些模型来测试它。无论如何,我已经使用开发者菜单-用户代理-SafariiOS4.3.3iPhone在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';
}
这应该行得通

var bIsMobile = (navigator.userAgent.toLowerCase().indexOf("mobile") != -1 && navigator.userAgent.toLowerCase().indexOf("ipad") == -1);
是的,来自的正则表达式将检测iPhone(以及iPod Touch)的所有版本…
ip(hone | od)
是与之匹配的正则表达式部分

如果您想要一个只用于iPhone/iPod的脚本,可以将上述脚本精简为:

编辑:

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

(function (a, b) { if (/Mobi/.test(a)) window.location = b }
)(navigator.userAgent || navigator.vendor || window.opera, 'http://www.mobile.mysite.com');
根据以下方面的建议:

我们建议在用户代理中的任何位置查找字符串“Mobi”,以检测移动设备。如果设备足够大,以至于没有标记“Mobi”,那么您应该为您的桌面站点提供服务(作为最佳实践,它无论如何都应该支持触摸输入,因为越来越多的桌面机器正在使用触摸屏)


我想说,如果你只对屏幕分辨率感兴趣,屏幕大小是一种更安全的方法。如果在子域中有特定于移动设备的特性,那么这种黑客行为是我知道的唯一方法。它有各种各样的选项,甚至可以添加您自己的检测参数。资料来源:现在手机和平板电脑之间的屏幕尺寸重叠越来越多。我也这么认为,否则我会使用一个简单的脚本,比如:if(screen.D,我的网站是HTML,所以我不能使用Mobile_Detect PHP。我不需要任何只用于iPhone/iPad的脚本。我只需要将手机用户重定向到包括iPhone 4和iPhone 5在内的移动版本网站。所以你说它也在处理这些问题。与:if相比,使用regex更好(screen.width请参见我的编辑…用户代理嗅探“Mobi”是移动设备检测的推荐方法。检查
screen.width
也可以,但由于屏幕/设备的多样性,更可能导致误报。不幸的是,使用此脚本将启用Ipad的移动站点版本,这非常糟糕(我只是测试它),所以我回到了脚本。使用“Mobi”而不是MikeM所说的“mobile”
(function (a, b) { if (/Mobi/.test(a)) window.location = b }
)(navigator.userAgent || navigator.vendor || window.opera, 'http://www.mobile.mysite.com');