检测移动设备和重定向的最佳方法
这是我根据屏幕尺寸检测移动显示的代码段。 您可以通过向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/获取一些脚本,而不是使用粘贴在这里的本土/不完整脚本那里。