【问题标题】:Domain wide localStorage fall-back for I6 & IE7?I6 和 IE7 的域范围 localStorage 回退?
【发布时间】:2012-03-05 15:07:08
【问题描述】:

在我们当前的项目中,我们使用 HTML 5 localStorage 并为 Firefox 和 IE6/IE7 使用用户数据行为回退到全局存储。 回退是通过一个名为 jStorage 的 JS 脚本提供的。

这工作正常,直到我们开始在 IE6/IE7 中进行测试,尽管它“工作”,但事实证明 userdata 行为存在限制,将其锁定,因此只能在同一个 URL 上设置和读取存储或正如 MSDN 所说,“出于安全原因,UserData 存储仅在同一目录中可用,并且使用与 persist the store 相同的协议”。

因此,如果我在一个页面上设置一个值,然后导航到另一个页面,虽然我在同一个站点上,但它不会起作用。 对我们来说,这几乎使它无法用作本地存储的后备,这是每个域的范围。

以前有没有人遇到过这个问题并找到了不错的解决方案?
任何想法或想法将不胜感激。

【问题讨论】:

  • 你真的需要 IE6&7 支持吗?
  • 好问题,我们正在查看 momnet 上的日志以了解大部分用户仍在使用 IE6/IE7 的原因。不幸的是,看起来,可能是的,我们确实需要它。

标签: javascript html local-storage


【解决方案1】:

如果问题是通过不同路径的两个页面获取数据,但在同一个域中,您可以尝试其中一种(注意:我没有尝试:我只是在尝试要有创意)

  1. 使用 URL 重写(使用 .htaccess),这样您就可以使用单个 path-rewritten/page1path-rewritten/page2 访问 /path1/page1/path2/page2

  2. 1234563 由于 page1 和 page2 - 根据假设 - 在同一个域中,您可以使 page1 和 iframe 通过 javascript 相互通信。

顺便说一句,好问题。

【讨论】:

    【解决方案2】:

    理论上的解决方案是:

    1. 动态创建一个隐藏的“代理”iframe 访问静态 从您方便的位置检索到的文件,例如 http://domain/proxy.html
    2. 代理访问 iframe 中的 DOM 元素以持久化/获取数据

    【讨论】:

      【解决方案3】:

      Remy Sharp 的 polyfill 可以做到这一点。

      https://gist.github.com/remy/350433

      【讨论】:

      • 虽然此链接可能会回答问题,但您应该避免仅使用链接的答案,因为链接会随着时间的推移而衰减。
      猜你喜欢
      • 2016-04-19
      • 1970-01-01
      • 2012-04-02
      • 2016-03-13
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      相关资源
      最近更新 更多