如何在所有地方都支持onreadystatechange事件,但不支持document.readyState?

时间:2019-06-22 16:13:50

标签: javascript internet-explorer events cross-browser readystate

根据MDN herehere,它说在所有浏览器中都支持readystatechange事件,但是直到IE9 +左右,才支持document.readyState属性( 8 *)。

考虑到readystatechange事件的字面定义为:

当文档的readyState属性更改时,将触发readystatechange事件。

除非readystatechange的先前实现将document.readyState保留为无法访问的内部变量。是这种情况,还是仅仅是文档错误?

1 个答案:

答案 0 :(得分:1)

它看起来像是文档错误。我尝试使用不同的文档模式在IE 11中测试document.readyState属性,它在所有文档模式下均有效,因此类似的特性应在IE的所有版本中均适用。

经过测试的代码:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to display the loading status of the current document.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
  var x = document.readyState;
  document.getElementById("demo").innerHTML = x;
}
</script>

</body>
</html>

输出:

enter image description here