我试图听取本地存储的变化。我已经为事件更改添加了eventlistener,如下所示。 window.addEventListener(' storage',function(e){console.log(' ls - ',e.key)}); 我知道只有从另一个框架或窗口设置localstorage时,存储侦听器才会起作用。我们知道如果我们从拥有监听器的同一窗口设置localstorage,则监听器将无法工作。我在www.xyz.com/home.html中添加了监听器,并在www.xyz.com/menu.html中设置了本地存储。监听器无法正常工作,因为我将document.domain设置为' xyz.com'在www.xyz.com/home.html。即使我尝试将www.anz.com/menu.html的document.domain修改为' xyz.com'仍面临同样的问题。
有人可以帮我解释当document.domain被修改为子域时听众没有工作的原因。
例如:www.xyz.com是location.hostname。修改了document.domain =' xyz.com'
答案 0 :(得分:0)
打开网站www.google.co.in
从控制台
设置存储的事件侦听器function storageChange(evt)
{
alert(' key '+evt.key);
alert('old value '+evt.oldValue);
alert('new value '+evt.newValue);
}
window.addEventListener('storage', storageChange, false);
此操作后将附加监听器。
在新标签页中打开相同的域名。 设置document.domain =" google.co.in" - >它是www.google.co.in的子域名
现在更改子域标签中的本地存储值。
警报将从原始窗口触发,因为已连接侦听器以进行本地存储更改。