use*_*156 5 javascript window external onload domready
的index.html
<html>
<head>
<script type="text/javascript" src="foo.js"></script>
<script type="text/javascript">
window.onload = function() {
console.log("hello from html");
};
</script>
</head>
<body>
<div class="bar">bar</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
foo.js
// this js file will be completely ignored with window.onload
//window.onload = function() {
console.log("hello from external js");
var bar = document.getElementsByClassName("bar");
// this returns 0 instead of 1
console.log(bar.length);
//};
Run Code Online (Sandbox Code Playgroud)
window.onload在html中使用时,window.onload将忽略来自外部js.window.onload外部js被注释掉时,bar.length返回0.window.onload从HTML被删除,window.onload从外部JS工作正常.谁能解释为什么我不能同时使用它们window.onload?
如果我必须window.onload在html中使用,如何判断窗口是否从外部js加载?
1)你绑定的方式,你可以只有一个方法附加到事件.您需要为所需内容添加事件侦听器.
window.addEventListener("load", function() { alert("hello!");});
Run Code Online (Sandbox Code Playgroud)
直接将方法设置为onload事件将替换以前附加的任何方法.但是,如果您使用侦听器,则可以将其中许多绑定到事件.
2)如果你在外部文件中注释掉onload,当document.getElementsByClassName("bar")调用它时,你的文档还没有准备好,那么它将返回0项.
3)使用addEventListener,正如我在第一点中解释的那样.如果你在这两个地方应用它,它将像魅力一样工作.