Подтвердить что ты не робот

Почему document.GetElementById возвращает null

Я успешно использую 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, и я не могу найти, что может быть неправильно.

Спасибо за ваш вход =)

4b9b3361

Ответ 1

Страница отображается сверху вниз. Вы выполняете код сразу после его анализа. Во время исполнения div еще не существует. Вам нужно обернуть его в функцию window.onload.

Ответ 2

Попробуйте следующее:

 <script type="text/javascript">
  window.onload = function() {
   document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
  }
 </script>

Ответ 4

Без 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, и все изображения и подкадры завершили загрузку.

https://developer.mozilla.org/en/DOM/window.onload

Ответ 5

Браузер собирается выполнить это script, как только он его найдет. В этот момент остальная часть документа еще не загружена - еще нет элемента с этим идентификатором. Если вы запустите этот код после загрузки этой части документа, он будет работать нормально.

Ответ 6

<script type="text/javascript">
  window.onload += function() {
   document.getElementById("ThisWillBeNull").innerHTML = "Why is this null?";
  }
 </script>

Используйте +=, чтобы назначить больше eventHandler для события загрузки документа.