I6和IE7的跨域localStorage回退方案?

6
在我们当前的项目中,我们正在使用HTML 5 localStorage,并针对Firefox使用全局存储作为备用方案,对于IE6/IE7则使用userdata行为。备用方案是通过名为jStorage的JS脚本提供的。
这个方案在测试IE6/IE7时工作得还不错,即使它“工作”,但实际上有一个限制,即userdata行为会将其锁定,因此只能在相同的URL或与MSDN所说的“为了安全起见,UserData存储仅在用于持久化存储的相同目录和协议下可用。”。
因此,如果我在一个页面上设置一个值,然后导航到另一个页面,尽管我在同一个站点上,它也无法工作。对于我们来说,这几乎使它作为本地存储的备用方案无法使用,因为它是按域范围划分的。
有人遇到过这个问题并找到了一个好的解决方案吗?任何想法或想法都将不胜感激。

你真的需要支持IE6和7吗? - Jan Hančič
好问题,我们正在查看日志以确定目前仍在使用IE6/IE7的用户所占比例。不幸的是,看起来我们可能确实需要它。 - Ola Karlsson
3个回答

1

虽然这个链接可能回答了问题,但你应该避免仅提供链接的答案,因为链接往往会随着时间的推移而失效。 - pinckerman

0

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

  1. 使用URL重写(使用.htaccess)以便您可以通过单个path-rewritten/page1path-rewritten/page2访问/path1/page1/path2/page2

  2. 如果您在/path2/page2中,则可以加载一个不可见的iframe,在其中加载/path1中的页面,在其中获取存储在某些数据结构中的数据,然后将其传递到父文档中。
    由于根据假设,page1和page2位于同一个域中,因此您可以通过JavaScript使page1和iframe相互通信。

顺便问一句,好问题。


0
一个理论解决方案可以是:
  1. 动态创建一个隐藏的“代理”iframe,访问从您方便的位置检索到的静态文档,比如http:/domain/proxy.html
  2. 通过代理访问iframe中的DOM元素以持久化/获取数据

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接