如何使用 jQuery 将函数绑定到 HTML5 localStorage 更改事件?
$(function () {
$(window).bind('storage', function (e) {
alert('storage changed');
});
localStorage.setItem('a', 'test');
});
我已尝试上述操作,但警报未显示。
Update:它可以在 Firefox 3.6 中工作,但不能在 Chrome 8 或 IE 8 中工作,因此问题应该是“如何在所有浏览器中使用 jQuery 绑定到 localStorage 更改事件?”
事实证明,这实际上工作正常,但我误解了规格
当对与本地存储区域关联的 Storage 对象 x 调用 setItem()、removeItem() 和clear() 方法时,如果这些方法执行了某些操作,则在其 Window 对象的 localStorage 属性的 Storage 对象为的每个 Document 对象中与除 x 之外的同一存储区域相关联,必须触发存储事件
换句话说,每个窗口/选项卡上都会触发存储事件except对于更新的那个localStorage
对象并引发事件。
因此该事件没有被触发,因为我只打开了一个窗口/选项卡。如果我将上述代码放在页面中并在两个选项卡中打开该页面,我将看到在第二个选项卡中触发的事件。
这个问题的答案包含更多细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)