如何使用 jQuery 将函数绑定到 HTML5 localStorage 更改事件?
$(function () {
$(window).bind('storage', function (e) {
alert('storage changed');
});
localStorage.setItem('a', 'test');
});
我试过上面的方法,但没有显示警报。
_更新_:它在 Firefox 3.6 中有效,但在 Chrome 8 或 IE 8 中无效,因此问题应该更多“如何为所有浏览器使用 jQuery 绑定到 localStorage 更改事件?”
原文由 David Glenn 发布,翻译遵循 CC BY-SA 4.0 许可协议
事实证明这实际上工作正常,我误解 了规范
换句话说,存储事件在每个窗口/选项卡上触发, 除了 更新
localStorage
对象并导致事件的窗口/选项卡。所以事件没有被触发,因为我只打开了一个窗口/选项卡。如果我将上面的代码放在一个页面中并在两个选项卡中打开该页面,我会看到在第二个选项卡中触发的事件。
这个问题的答案 包含更多细节。