存储事件侦听器在隐身或私人模式下无法正常工作 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 中尝试相同的代码时,它在 chromemozilla 浏览器中正常工作,但在 EdgeInternet Explorer 浏览器中无效

但是在 IEEdgeBrave 浏览器私有 windows 的情况下,我的网站不会触发此事件。在其他浏览器中,它按预期工作。 有没有办法让它在 IEEdge 浏览器

的隐身 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