0

所以这几天我一直在寻找这个问题的答案。这是我第一次尝试饼干,所以我希望这对你们来说很容易。我有一个网站询问用户是否要使用该网站的移动版本,并将他们的响应存储在 cookie 中,以便下次访问时,他们会自动转到首选版本。然而,在移动网站上,我在桌面网站上提供了一个返回“/desktop.html”的链接,该链接将他们的偏好重置为该网站的桌面版本,然后加载他们在移动网站上所在页面的相应桌面版本. 这一切都很好,但我很快发现 cookie 计划不起作用。用户将自动被重定向回移动站点。我发现这是因为“桌面. 我想我一定不能访问我之前设置的“全局”cookie。我发现的所有页面都说使用“;path=/;”设置全局cookie 字符串,但我找到的所有页面似乎都没有告诉我如何在后续页面加载时访问它——或者我只是太菜鸟了,没有意识到我做错了什么。

这是 /desktop.html 中的代码

  <body style="background: rgb(165, 183, 156); margin: 0pt;" onload="document.cookie = 'desktop; path=/';alert('Preference saved. To get back to the mobile site, click the mobile icon in the bottom left corner.');window.location.href='index.html';">Desktop Preference Saved</BODY>

这是子目录中所有页面中的代码:

  <body style="background: rgb(165, 183, 156); margin: 0pt; " onload="onPageLoad();if(document.cookie.length != 0){if(document.cookie.match('mobile') && isMobile.any()){window.location.href=getMobileURL()}}else if(isMobile.any() && confirm('Go to mobile version of site?\nNote: menu navigation on the regular website does not work on a touch screen.')){window.location.href=getMobileURL();document.cookie = 'mobile; path=/';}else{document.cookie = 'desktop; path=/';if(isMobile.any()){alert('Preference saved. To get to the mobile site, click the mobile icon in the bottom left corner.');}}" onunload="onPageUnload();">

我认为它们不相关,但如果您需要查看函数 getMobileURL() 和 isMobile.*,请告诉我。

谢谢,罗伯

4

1 回答 1

0

当您不设置值时,该 cookie 将被设置为删除,这就是为什么在下一页上没有读取任何内容的原因。设置一个值,它将起作用。

document.cookie = 'desktop=true;...

cookie在 quirksmode 上进行了深入解释。

于 2013-03-05T18:06:01.527 回答