为什么document.onreadystatechange会运行两次?

时间:2016-03-12 14:05:47

标签: javascript event-handling

我在下面有以下示例。我很好奇为什么控制台日志会将“文档已准备好”两行写入(在FF和Chrome中)。我怎样才能确保它只运行一次?

其他问题:由于我还使用已附加事件的window.onload,是否可以添加窗口事件而不删除以前分配的事件?

<!doctype html>
<html>
    <head>
        <script>
            window.onload=function(){console.log('window is ready');}
            document.onreadystatechange = function(){console.log('document is ready');}
        </script>
    </head>
    <body>
        Hello
    </body>
</html>

1 个答案:

答案 0 :(得分:2)

它会多次运行,因为它有多个状态

https://developer.mozilla.org/en/docs/Web/API/Document/readyState

loading, interactive, complete

如果你只想抓住其中一个,只需使用类似于你看到链接的代码过滤它