存储事件侦听器在隐身或私人模式下无法正常工作 Window
Storage event Listener not working properly in Incognito or private Window
在普通浏览器中,存储事件侦听器正常工作和触发
事件监听代码如下
window.addEventListener('storage', function (e) {
console.log("storage event occured here");
},false);
使用
更改存储
localStorage.setItem('logout-event', 'logout'+Math.random());
当对本地存储进行任何更改时,它会正确触发其他浏览器选项卡存储事件。但是当我在 Incognito 或 Private window 中尝试相同的代码时,它在 chrome
和 mozilla
浏览器中正常工作,但在 Edge
和 Internet Explorer
浏览器中无效
但是在 IE
、Edge
和 Brave
浏览器私有 windows 的情况下,我的网站不会触发此事件。在其他浏览器中,它按预期工作。
有没有办法让它在 IE
和 Edge
浏览器
的隐身 window 中工作
当 window 的更改区域发生更改时发生存储事件。
注意:仅当window 自身以外的进行更改时才会触发存储事件。
您可以查看以下示例代码:
<button onclick="changeValue()">Change a Storage Item</button>
<p id="demo"></p>
<script>
window.addEventListener("storage", function myFunction(event) {
document.getElementById("demo").innerHTML = "A change was made in the storage area";
console.log("storage event occured here");
}, false);
function changeValue() {
var x = window.open("popuppage.html", "myWindow", "width=200,height=100");
x.localStorage.setItem("mytime", Date.now());
x.close();
}
</script>
当打开一个新的window并更改本地存储时,将触发存储事件。上面的代码在我这边运行良好(使用 IE 11 和 MS Edge 44 版本)。
有关存储事件的更多详细信息,请查看this article。
在普通浏览器中,存储事件侦听器正常工作和触发
事件监听代码如下
window.addEventListener('storage', function (e) {
console.log("storage event occured here");
},false);
使用
更改存储 localStorage.setItem('logout-event', 'logout'+Math.random());
当对本地存储进行任何更改时,它会正确触发其他浏览器选项卡存储事件。但是当我在 Incognito 或 Private window 中尝试相同的代码时,它在 chrome
和 mozilla
浏览器中正常工作,但在 Edge
和 Internet Explorer
浏览器中无效
但是在 IE
、Edge
和 Brave
浏览器私有 windows 的情况下,我的网站不会触发此事件。在其他浏览器中,它按预期工作。
有没有办法让它在 IE
和 Edge
浏览器
当 window 的更改区域发生更改时发生存储事件。
注意:仅当window 自身以外的进行更改时才会触发存储事件。
您可以查看以下示例代码:
<button onclick="changeValue()">Change a Storage Item</button>
<p id="demo"></p>
<script>
window.addEventListener("storage", function myFunction(event) {
document.getElementById("demo").innerHTML = "A change was made in the storage area";
console.log("storage event occured here");
}, false);
function changeValue() {
var x = window.open("popuppage.html", "myWindow", "width=200,height=100");
x.localStorage.setItem("mytime", Date.now());
x.close();
}
</script>
当打开一个新的window并更改本地存储时,将触发存储事件。上面的代码在我这边运行良好(使用 IE 11 和 MS Edge 44 版本)。
有关存储事件的更多详细信息,请查看this article。