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

时间:2014-10-30 09:51:27

标签: jquery redirect mobile detect screen-size

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

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

积分转到brandonjp: How can I get query string values in JavaScript?

        <script>
            $.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);
                    }
                }
            };
        </script>

4 个答案:

答案 0 :(得分:3)

如果您要使用某种形式的浏览器嗅探而非通过类似Modernizr之类的功能检测,最好的办法是从http://detectmobilebrowsers.com/获取一些脚本,而不是使用主页 - 在这里和那里粘贴成长/不完整的脚本。

答案 1 :(得分:2)

最好的方法是

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

}

了解更多Here

答案 2 :(得分:2)

实际上,我认为从窗口宽度检测移动设备非常重要。

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

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

if (detectmob()){
top.location.href="mobile";
}

答案 3 :(得分:2)

为什么不呢?

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