Ответ 1
Страница отображается сверху вниз. Вы выполняете код сразу после его анализа. Во время исполнения div еще не существует. Вам нужно обернуть его в функцию window.onload.
Я успешно использую document.GetElementById, но с некоторого времени я не могу заставить его работать снова. Старые страницы, в которых я его использовал, по-прежнему работают, но такие простые вещи, как это:
<html>
<head>
<title>no title</title>
<script type="text/javascript">
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
</script>
</head>
<body>
<div id="ThisWillBeNull"></div>
</body>
</html>
Дает мне "document.getElementById(" parsedOutput ") равно нулю" все время сейчас. Это не имеет значения, если я использую Firefox или Chrome или какие расширения я включил или какие заголовки я использую для html, он всегда null, и я не могу найти, что может быть неправильно.
Спасибо за ваш вход =)
Страница отображается сверху вниз. Вы выполняете код сразу после его анализа. Во время исполнения div еще не существует. Вам нужно обернуть его в функцию window.onload.
Попробуйте следующее:
<script type="text/javascript">
window.onload = function() {
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
}
</script>
Timing.
Документ не готов, когда вы получаете элемент.
Вы должны подождать, пока документ не будет готов, прежде чем извлекать элемент.
Без window.onload ваш script никогда не вызывается. Javascript - это язык, основанный на событиях, поэтому без явного события, такого как onload, onclick, onmouseover, скрипты не запускаются.
<script type="text/javascript">
window.onload = function(){
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
}
</script>
Событие onload:
Событие загрузки запускается в конце процесса загрузки документа. На этом этапе все объекты в документе находятся в DOM, и все изображения и подкадры завершили загрузку.
Браузер собирается выполнить это script, как только он его найдет. В этот момент остальная часть документа еще не загружена - еще нет элемента с этим идентификатором. Если вы запустите этот код после загрузки этой части документа, он будет работать нормально.
<script type="text/javascript">
window.onload += function() {
document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
}
</script>
Используйте +=
, чтобы назначить больше eventHandler
для события загрузки документа.