我有一个引用外部javascript文件的页面,当我告诉它运行一个函数onload时,它给了我错误(我假设它是在页面加载之前触发的。)“无法设置属性'innerHTML'为null“
在加载页面后,我需要做什么才能触发run()?
HTML
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<script type="text/javascript" src="js/test.js"></script>
</head>
<body>
<div id="test"></div>
</body>
</html>
JS
window.onload = run();
function run() {
document.getElementById("test").innerHTML = "found it";
}
答案 0 :(得分:2)
请改为尝试:
window.onload = run
执行window.onload = run()
时,您立即执行run()
并将返回的分配给window.onload
属性。这就是它无法正常工作的原因。
答案 1 :(得分:2)
应该是:
window.onload = run;
当你这样做时:
window.onload = run();
您实际上正在运行名为run
的函数,然后将其返回值(在这种情况下为undefined
)分配给window.onload
。
此功能在页面加载之前运行(因为您通过执行run()
明确地运行它),此时div
的标识为test
的情况并非如此甚至存在。这就是您收到错误的原因。