0

假设我们有一个简单的 HTML 页面 homepage.html。

它引用了两个 Javascript 页面:使用 jQuery 的 one.js 和 two.js。

one.js 包含一个 $(document).ready(function () { 语句。two.js 包含跨多个页面使用的函数,但没有就绪函数。

用户在他们的浏览器(具体来说是 Safari)中打开两个 homepage.html 实例。

two.js 顶部有以下代码:

$(window).bind('storage', function (e) {
  console.log('Only fires for pages OTHER than the current one...<---- IMPORTANT!!!', e);
  if (e.key === "test"){
    console.log('Changing test...', localStorage.test);
  } 
});

这是问题所在:当 localStorage.test 在两个实例中的任何一个中更新时,两个实例都在控制台中显示“正在更改测试...”。

我的理解是,localStorage 侦听器仅在当前页面以外的页面上触发。

但也许因为这些是同一个文件 NAMES 这个关于 localStorage 事件侦听器的声明是不正确的?

我希望只有未激活的 homepage.html 实例才会显示该消息。

我错过了什么?

4

0 回答 0