你如何打破JavaScript重定向到移动?

时间:2014-02-03 15:53:57

标签: javascript jquery wordpress cookies

我创建了一个简单的脚本来检测用户设备,如果该设备是移动的,那么它将重定向到移动端。当您使用移动设备时,该网站将创建一个cookie,当您再次访问桌面时,该cookie应该基本上会破坏重定向。以下是主网站上的代码:

<script>
// simple mobile detection script
// create a variable to store response to user agent queries
var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function() {
    return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function() {
    return navigator.userAgent.match(/IEMobile/i);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() ||     isMobile.Opera() || isMobile.Windows());
    }
};

// if any of the listed agents are accessing the page, redirect to mobile version with     geolocation enabled
if(isMobile.any()) 
{
    if(jQuery.cookie('mobilea')!== 1)
    {
         window.location="/mobile/";
         console.log('true');
    }
}
</script>

使用以下代码成功在移动端实例化cookie:

jQuery.cookie('mobilea',1, {path: '/'});

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

if(jQuery.cookie('mobilea')!== 1)始终为false,因为'1'并不完全等于1。切换到!=,或将1替换为'1'

if(jQuery.cookie('mobilea')!== '1')

答案 1 :(得分:1)

jQuery.cookie('mobilea')将返回一个字符串而不是一个整数,所以你对它的严格检查永远不会是假的。如果将其更改为

jQuery.cookie('mobilea') !== '1'

您可以正确测试