检测移动设备和重定向的最佳方法

这是我根据屏幕尺寸检测移动显示的代码段。 您可以通过向URL添加forceDesktop参数来强制网站保持桌面模式。

我是jquery的新手所以如果您有任何建议,请发表评论。

积分转到brandonjp: 如何在JavaScript中获取查询字符串值?

 $.urlParam = function(name, url) { if (!url) { url = window.location.href; } var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(url); if (!results) { return undefined; } return results[1] || undefined; } window.onload = function() { var forceDesktop = $.urlParam('forceDesktop'); if (!forceDesktop) { if ( $(window).width() < 639) { var url = "http://m.mysite.com/"; $(location).attr('href',url); } } };  

实际上,我认为从窗口宽度检测移动是很重要的。

所以这就是我使用的方式。

 function detectmob() { if(window.innerWidth <= 800 || window.innerHeight <= 600) { return true; } else { return false; } } if (detectmob()){ top.location.href="mobile"; } 

最好的方法是

 if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { var url = "http://m.mysite.com/"; $(location).attr('href',url); } 

在这里更多

为什么不呢?

 if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { window.location = "http://m.mysite.tld/"; } 

如果您打算使用某种forms的浏览器嗅探而不是像Modernizr这样的function检测,最好的办法是从http://detectmobilebrowsers.com/获取一些脚本,而不是使用粘贴在这里的本土/不完整脚本那里。