外部javascript window.onload提前解雇

时间:2014-06-25 17:37:00

标签: javascript onload external-js

我有一个引用外部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";
}

2 个答案:

答案 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的情况并非如此甚至存在。这就是您收到错误的原因。