关于这个问题,在 Chrome 8.0.552.224 中将函数绑定到 Storage 对象的更改事件时,我得到了一个奇怪的结果。
考试:
<!DOCTYPE html>
<html>
<head>
<title>Chrome localStorage Test</title>
<script type="text/javascript" >
var handle_storage = function () {
alert('storage event');
};
window.addEventListener("storage", handle_storage, false);
</script>
</head>
<body>
<button id="add" onclick="localStorage.setItem('a','test')">Add</button>
<button id="clear" onclick="localStorage.clear()">Clear</button>
</body>
</html>
- 在两个 Chrome 窗口中打开页面,一个窗口有两个选项卡,
- 单击“添加”按钮
当我这样做时,我会在第二个选项卡和第二个窗口上显示一个警报框,但不在调用该事件的选项卡上(我点击了)。据我了解,我应该看到三个警报框(打开的每个选项卡一个)。
这是一个错误吗?有没有其他人得到这种行为?如果不是,你运行的是什么版本?还是我刚刚把这一切都弄错了?