Javascript移动网站重定向问题

时间:2015-04-06 12:37:30

标签: javascript mobile cookies

我正在使用代码重定向宽度小于699像素的移动设备来访问我们的移动网站。此方法使用JavaScript和cookie,并遵循一些基本逻辑:

  • 如果禁用cookie,请不要运行重定向逻辑
  • 如果Cookie skipmobile设置为1
  • ,请勿重定向
  • 仅当skipmobile不是1且您的移动设备列在下方且宽度不足699像素时才重定向。

    //{{Full Site Code}} Only run logic if cookies are enabled.
    if(navigator.cookieEnabled){
        //If the cookie skipmobile is already set do not redirect to mobile.
        if (document.location.search.indexOf("skipmobile") >= 0) {
            document.cookie = "skipmobile=1";
        }
        //If the device is one of the types listed below and is under 699 pixels wide, redirect to the mobile site.
        else if (((/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) && screen.width < 699)
                && document.cookie.indexOf("skipmobile") == -1)
            {
                document.location = "'.MOBILE_SITE.$direct.'";
            }
        }
    

在移动网站上,我只是有一个类似以下的链接,有人可以点击设置cookie

http://www.example.com?skipmobile=1

此代码适用于我和大多数人,但我们让客户说当他们点击完整的站点链接时,它会将它们发送回移动站点。根据代码,这意味着他们确实启用了cookie,但他们的cookie没有设置。

我需要对这段代码做些什么吗?

更新:所以这个问题有点奇怪。我们的一名员工也遇到了这个问题,所以我们至少要有一个电话进行测试。我们有一个实时网站和一个开发网站。它适用于我们我们去开发站点和重定向,但它不适用于现场......

这有助于任何人得出结论吗?两个站点的代码都是相同的。

1 个答案:

答案 0 :(得分:1)

您应该事先删除与您网站相关的所有cookies,因为 应该清除任何问题。这是一个很棒的功能链接,应该为你做到这一点:

  

Clearing all cookies with JavaScript

你也可以说你不希望它在标题中缓存一段时间(使用缓存控制var)以确保如果手机存储了任何问题,这些都会被删除