【问题标题】:HTML5 Local Storage data not reflected across active tabs/windows in IE 11HTML5 本地存储数据未反映在 IE 11 中的活动选项卡/窗口中
【发布时间】:2014-04-26 11:03:31
【问题描述】:

我们创建了一项功能,让用户可以在离线模式下使用表单。 我们使用 HTML 5 本地存储来存储所有离线数据。 所有表单都有自己的html文件(例如:form-1.html,form-2.html。)

我们有一个父 html 页面,它使用 iframe 根据从下拉列表中选择的表单加载所需的 html 文件。 用户在离线模式下进行修改后,用户可以通过登录到 ASP.Net 网站来同步他们的更改。

我们面临的问题是,当用户将更改同步到 ASP.Net 网站时,用户在离线模式下修改的本地存储副本不同步。 总之,当我们登录ASP.Net网站时,在浏览器的IE控制台中查看Local Storage时,并没有反映出在离线模式下对Local Storage所做的更改。

父 html 页面ASP.Net 网站页面均来自同一域。 我看到这篇文章说这是一个持续存在的问题,并且尚未在 IE 11 中修复。

IE and Local Storage Issues 请参阅第 3 条。

有人有过同样的经历吗?

有什么解决办法吗?

【问题讨论】:

  • 是的,我刚刚遇到了和你一样的问题,这就是为什么我更新了我的脚本来检测 IE11(哪个用户代理甚至不再说 MSIE)以使 localStorage 不被使用在那个浏览器上。像往常一样,IE 从来没有像所有其他浏览器一样工作,并且让我们的生活越来越难......

标签: asp.net html local-storage internet-explorer-11


【解决方案1】:

这是一个已知错误:https://connect.microsoft.com/IE/feedback/details/812563/ie-11-local-storage-synchronization-issues

错误报告中添加了一种解决方法,您可以使用 indexedDB,它在帧之间同步。但在您创建数据库之前,用户需要授予您的 Web 应用程序创建数据库的权限。

【讨论】:

    【解决方案2】:

    我测试了很多想法,因为我为 onstorage 属性附加了一个空的事件处理程序!

    WindowEventHandlers.onstorage 属性包含一个在存储事件触发时运行的事件处理程序。当存储区域发生变化时会发生这种情况(例如,存储了一个新项目。)

    这是我的代码

        window.onstorage = function(e){};
    

    Microsoft 很清楚这个问题,但大约 3 年后,仍然没有修复,而且可能永远不会修复。更多信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多