【问题标题】:Javascript mobile site redirect issuesJavascript 移动网站重定向问题
【发布时间】:2015-04-06 12:37:29
【问题描述】:

我正在使用代码将宽度小于 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 没有设置。

我需要对缺少的代码做些什么吗?

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

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

【问题讨论】:

  • 您是否曾经自己重现过该问题,或者看到过重现?另外,您知道哪些设备有问题吗?
  • 刚刚更新了问题。我们的一名员工的手机确实存在问题。
  • 请问他使用的是什么浏览器,在哪个操作系统上?
  • 他的 iphone 5 已完全更新,并且正在使用 safari。他的 chrome 确实适用于 live/dev 他的 safari 只适用于 dev
  • 他刚刚再次清除了他的缓存/cookies/历史记录,现在它显然可以工作了。我可以在代码中放入一些东西来清除没有缓存的cookie或该页面的缓存吗?对于初始重定向

标签: javascript mobile cookies


【解决方案1】:

您应该事先尝试删除与您的网站相关的所有cookies,因为这应该解决所有问题。这是一个很棒的功能的链接,应该为你做这件事:

Clearing all cookies with JavaScript

您也可以将您不希望它在标题中缓存一段时间(使用缓存控制变量)以确保如果手机存储任何问题,这些问题将被删除

【讨论】:

    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多