“window”的“readystatechange”事件是什么意思?

What does ‘readystatechange’ event for ‘window’ mean?

尝试处理 window.onreadystatechange,我注意到此事件在页面加载期间触发 两次 。但我无法弄清楚每次事件后到底发生了什么变化。如果不是window,而是document,那么就有document.readyState 属性包含当前状态。但是在 window 的情况下,没有任何 “window.readyState” 或类似的 属性。那么当 windowreadystatechange 事件触发时,它真正意味着什么,第一次和第二次触发之间的区别是什么?

这是我的代码,它给出了两个看似相同的控制台输出:

'use strict';

window.addEventListener('readystatechange', function(e) {
  console.log(window, e);
});

window 仅在 IE 和 Edge 中触发 readystatechange 事件(在 IE 11 中测试)。 它不会在 Firefox 或 Chrome.

中触发

当它的 readyState 变为 "interactive""complete"(冒泡)时,它实际上被文档触发。

因此,在 IE 中:

window.onreadystatechange == document.onreadystatechange

不过我不推荐使用它,因为在其他浏览器中不会触发此事件。