【问题标题】:Neither cookies nor HTML5 local storage working in anything except Chromecookie 和 HTML5 本地存储都不能在 Chrome 之外的任何地方工作
【发布时间】:2011-02-10 05:41:45
【问题描述】:

我正在开发一个 javascript 驱动的工具,该工具将在本地存储用户的选择,然后在下次导航到页面时重新填充。它在 Chrome 中运行良好,但在 IE8 或 Safari 中则完全不行。

我尝试使用标准 javascript 和 jquery.cookie.js 插件将此信息存储在 cookie 中,最近我还尝试使用本地存储。我正在存储一块 XML,所以我的理论是它可能太大而无法存储在 cookie 中,但对于本地存储来说不可能太大。

我正在 localhost 下的本地 IIS 上对此进行测试。谁能想到其他浏览器无法正常工作的任何原因?我觉得奇怪的是它会影响 cookie 和本地存储。我只能认为这是一种限制任何类型的本地存储、cookie 或其他方式的安全设置。

我玩过 IE 中的设置,IIS 中的设置,但无法解决。任何想法或想法都将受到欢迎!

问候,

马特

【问题讨论】:

  • 如果您想得到答案,您首先必须预付详细信息。你的代码是什么? “其他浏览器”以什么方式“不起作用”?什么是“其他浏览器”,在什么操作系统上,什么版本?
  • 快速更新。我发现 XML 实际上是被存储和返回的。在IE8中遍历xml其实是有问题的!出于某种原因,这个javascript有问题,但Chrome没有: $(xml).find("Action").each(function() { alert('x'); });

标签: javascript html cookies cross-browser local-storage


【解决方案1】:

XML 是在字符串中,还是在像 DOM 引用这样的对象中?我相信 IE8 的 localStorage 只能将字符串作为键和值......或者可以自动转换为字符串的原始值......所以你必须对对象进行字符串化。

如果您担心 IE8 中的大小限制,请检查 localStorage.remainingSpace(IE 特定属性)的值。

如果 Safari 在 Chrome 中运行,我不确定为什么它不适合你。也许它也只能带字符串。

【讨论】:

  • 虽然我将 XML 作为可以使用 jQuery 遍历的对象存储在 var 中,但是当我保存它时,我将它转换为 XML 字符串。我想知道是否可能是导致问题的 XML,因为事实证明,如果我使用带有数字的本地存储,它可以正常工作。我将尝试对 XML 进行 HTML 编码,看看这是否会有所不同。我怀疑大小限制与它有什么关系,因为 XML 很小(大约 1kb)。
  • 既然你用的是jQuery,就试试我写的这个插件:sites.google.com/site/daveschindler/jquery-html5-storage-plugin。它尝试使用 localStorage,但如果不支持,则使用 cookie。
  • 我没有看到你对 jQuery .find() 方法的评论...听起来和stackoverflow.com/questions/2815673/… 的问题一样。看看那里接受的解决方案。
  • 你是对的,戴夫。在阅读您的评论之前,我已经到达了同一篇文章。我需要对 XML 进行属性解析,但具体取决于浏览器。谢谢你的帮助 - 我现在就去试试你的插件!
  • 戴夫,在尝试您的插件时,我发现要存储变量中的某些内容,我必须在变量前添加空引号和加号:$.Storage.set("whichp", ""+myindex) 为什么我不能只放变量,像这样:$.Storage.set("whichp", myindex)?
【解决方案2】:

您如何保存数据?如果它在 Chrome 中工作,我很惊讶它不能在 Safari 中工作。使用开发人员工具查看本地存储中的内容。在火狐中使用萤火虫。

换句话说,首先找出失败的地方。

【讨论】:

  • 是的,我决定回到基础并尝试找出它失败的地方。我刚刚创建了一个非常简单的测试页面 (theprogressbar.co.uk/test.html),它实际上在我的 IE8 中工作,所以我现在想知道它是否更多地与我存储的内容有关。接下来我将尝试在测试页面上展开,并使其更接近问题代码。
猜你喜欢
  • 2011-11-03
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多