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

Sac*_*eck 7 mobile jquery redirect detect screen-size

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

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

致谢brandonjp: 如何获取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>
Run Code Online (Sandbox Code Playgroud)

小智 5

为什么不是这个?

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


Ahm*_*ven 4

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

这就是我正在使用的方法。

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

if (detectmob()){
top.location.href="mobile";
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为你需要“OR”,而不是“AND”,因为许多手机屏幕高 720 或 800 像素,而宽只有 480 像素。 (2认同)