【发布时间】: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