【发布时间】:2016-12-13 01:04:48
【问题描述】:
尝试处理window.onreadystatechange,我注意到此事件在页面加载期间触发两次。但我无法弄清楚每次事件发生后究竟发生了什么变化。如果不是window,而是document,那么就有document.readyState 属性包含当前状态。但是在window 的情况下,没有任何“window.readyState” 或类似的属性。那么当window 的readystatechange 事件触发时,它的真正含义是什么?第一次和第二次触发的区别是什么?
这是我的代码,它提供了两个看似相同的控制台输出:
'use strict';
window.addEventListener('readystatechange', function(e) {
console.log(window, e);
});
【问题讨论】:
-
"readyState" 确实是文档对象上的一个属性:developer.mozilla.org/en-US/docs/Web/API/Document/readyState
-
我没有收到任何事件。你使用的是什么浏览器?该页面上还加载了哪些其他脚本?
-
@Bergi,我使用的是 MS Edge 38.14393.0.0,因为它是一个测试页面,所以没有其他脚本链接到该页面。
-
Edge 有没有可能让它冒泡到窗口?你能检查它是否对应于文档事件吗?
-
而
bubbles是true,这证实了@Kaiido 的理论。虽然是shouldn't。而且真的不是从document到window。对我来说似乎是一个错误。
标签: javascript window microsoft-edge readystate onreadystatechange