Внешний Javascript Window.onload стрельбы рано
У меня есть страница, которая ссылается на внешний файл 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 ответа
Так должно быть:
window.onload = run;
Когда вы делаете:
window.onload = run();
Вы на самом деле запускаете функцию под названием run
, а затем присваивая его возвращаемое значение (undefined
в этом случае) window.onload
,
Эта функция запускается еще до загрузки страницы (поскольку вы запускаете ее явно, выполнив run()
), когда div
с идентификатором test
даже не существует Вот почему вы получаете ошибку.
Попробуйте это вместо этого:
window.onload = run
Когда вы делаете window.onload = run()
вы немедленно выполняете run()
и назначить все, что возвращается window.onload
имущество. Вот почему это не работает правильно.