【发布时间】:2017-08-10 17:40:03
【问题描述】:
我的网络应用程序正在 IE 11 企业模式下运行,因为该应用程序现在与 IE 8 兼容(即尚不支持 IE 11)。
当 localStorage 中的密钥发生更改时,我正在使用 localStorage 并尝试执行一些操作(即重定向到注销页面)。
请注意,以下代码在 IE 11(即非企业模式) 和 IE 调试模式(版本设置为 8) 下运行良好。仅当浏览器处于 IE 11 企业模式时才会出现问题。
我已附加如下所述的监听器:-
if (window.addEventListener) {
window.addEventListener("storage", handle_storage, false);
} else {
window.attachEvent("onstorage", handle_storage);
}
在其中一个选项卡中单击注销时在其他选项卡中执行某些操作的功能:-
var handle_storage = function () {
//some action i.e. redirecting to logout page
};
点击注销按钮时设置localStorage中的值:-
function saveLogoutInLocalStorage() {
if (typeof(Storage) !== "undefined") {
localStorage.setItem('is_logout','true');
}
}
【问题讨论】:
-
“PS:这不是一个重复的问题。我在发布这个问题之前已经搜索了很多。” 不具建设性。人们要么会找到一个较早的版本并帮助你指出它,要么他们不会。像这样的评论只会让人走开。
-
你知道你的企业模式用的是什么吗?它可以是 IE7 或 IE8。在 IE7 afaik 中不支持这些事件。即使,我也不确定企业模式是否支持本地存储......
-
@eisbehr: 如果它在模拟 IE8,希望它确实如此,因为 IE8 支持本地存储(尽管我从未检查过 IE8 是否支持
storage事件;连IE10和IE11都有bugs in the event)。 -
企业模式设置为IE8。我只是想知道当我在设置为 IE8 的调试模式下运行时它是如何工作的?在不使用 localStorage 的情况下,还有其他可用于多选项卡注销方案的替代解决方案吗?
-
如果你可以确认企业模式运行的是IE8而不是IE7,并且你可以确认IE8模式下的普通IE11工作正常,那么它开始闻起来很像企业模式下的一个bug,在这种情况下,您可能需要联系 Microsoft 支持。 (如果您使用的是企业模式,我假设您有一份支持合同,所以您也可以使用它)。我可以很容易地想象到这是一种直到现在才被忽视的错误,因为使用 localStorage 的网站往往与升级有困难的网站不同。
标签: javascript jquery html internet-explorer