0

我敢肯定,这个问题以某种或其他方式出现了很多次,但没有什么真正帮助我。

我会开门见山的

我打开了我的应用程序的多个选项卡。从一个选项卡注销时,应刷新其他选项卡。所以我写的代码是这样的,

localStorage.setItem('logout-event', 'logout' + Math.random());

 window.addEventListener('storage', function (event) {

if (event.key == 'logout-event') {
    $('<div>You are logged out. The page will be refreshed.</div>', { id: "confirmBox" }).dialog({
        resizable: false,
        height: 140,
        modal: true,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
                window.location.reload(true);
            },                
        }
    });
    }
}, false);

这适用于除 IE 之外的所有其他浏览器。我知道有诸如 sessionStorage、postMessage 等选项。如果我得到一个类似于 localstorage 但适用于 IE 的答案,我将不胜感激。

谢谢你。

编辑:我应该提到我知道 IE 11 不支持它,因为我已经研究了很长时间,我正在寻找一种替代的内置代码方法。很抱歉,但我不想知道 IE 是否支持它,我想以另一种方法完成我上面提到的任务,而不需要任何新的引用或扩展(如果有的话)。谢谢大家的回复。我目前正在尝试制作自定义事件。不确定这会起作用。同时寻找一个好的替代方法。再次感谢大家。

4

2 回答 2

0

有关存储 API 的浏览器兼容性的更多信息,请访问以下站点

https://developer.mozilla.org/en-US/docs/Web/API/Window/storage_event

https://caniuse.com/#feat=mdn-api_storageevent

https://caniuse.com/#search=storage

因为IE不支持存储事件API,但最新版本的edge<18。

于 2019-12-27T10:36:07.737 回答
0

虽然这在这里已经有了一个很好的答案,但我仍然会解释它是如何工作的。当您测试本地文件时window.localStorage,无法在 IE 中访问。window您可以通过输入控制台并向下滚动到本地存储来验证这一点。它应该说类似Permission denied。虽然您仍然可以作为 HTTP 网站访问 localStorage。这里有一个解决这个问题的方法(第二个答案)。

编辑 - 如果您实际上在窗口对象中检查 localStorage,则适用于 IE。你会看到null,它说Permission Denied in Edge。

于 2019-12-27T10:49:29.907 回答