存储侦听器无法将document.domain更改为子域

时间:2016-06-02 11:11:49

标签: javascript

我试图听取本地存储的变化。我已经为事件更改添加了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'

1 个答案:

答案 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的子域名

现在更改子域标签中的本地存储值。

警报将从原始窗口触发,因为已连接侦听器以进行本地存储更改。