IE 11-使用事件侦听器在从一个选项卡注销时用刷新事件刷新其他浏览器选项卡中的页面,在IE中不起作用

问题描述 投票:0回答:2

我确信,这个问题在某种程度上已经出现了很多次,但是没有什么真正帮助我的。

我会讲到重点,

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

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。

谢谢。

javascript jquery local-storage internet-explorer-11 browser-tab
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。


0
投票

尽管这已经有了很好的答案here,但我仍然会解释其工作原理。测试本地文件时,window.localStorage在IE中不可访问。您可以通过在控制台中键入window并向下滚动到本地存储来验证。它应该说类似PermissionPermission。虽然您仍然可以作为HTTP网站访问localStoarage。此问题已解决here(第二个答案)。

编辑-对于IE,如果您实际上在窗口对象中检查了localStorage。您将看到null,在Edge中显示[Permission Denied

© www.soinside.com 2019 - 2024. All rights reserved.