Код не будет работать в скрипте, но будет работать в консоли разработчика - PullRequest
0 голосов
/ 05 августа 2020

Это, вероятно, какой-то странный сбой или что-то в этом роде, но я застрял на этом.

Я пишу одну строку кода, которая

document.getElementById('joinTIMEdemo').innerHTML = new Date;

<p id="joinTIMEdemo"></p> Это дает мне сообщение об ошибке «Uncaught TypeError: Cannot set property 'inner HTML' of null». Я проверял много раз, меняя имя идентификатора (на странице javascript и html) снова и снова, но все равно получаю ту же ошибку.

Я помещаю код, который меня беспокоит в консоль разработчика, и вместо ошибки это действительно работает, хотя, когда я вставляю его в скрипт, он выдает мне ошибки.

Я изменил его с

* От 1013 * до document.getElementById('joinTIME').innerHTML = new Date; до document.getElementById('loginTime').innerHTML = new Date; И так много других имен до такой степени, что кажется, что Chrome забывает, как читать мои сценарии.

Я переписывал строку кода бесчисленное количество раз с без изменений. Мне очень нужна помощь. Если я смогу получить ответ, я буду очень благодарен.

Заранее спасибо!

Примечание: Drag13 решил это в комментариях. Очевидно, html должен загружаться перед скриптами: /

1 Ответ

2 голосов
/ 05 августа 2020

Вы должны убедиться, что ваш скрипт запускается после того, как страница станет интерактивной. Это можно сделать двумя способами. Первый - переместить ваш тег script в нижнюю часть тега body, чтобы сценарий запускался после того, как браузер «узнает», что находится в DOM.

Другой вариант - использовать событие onload в окне или событие readystatechange в документе, чтобы проверить, является ли документ интерактивным.

window.onload = function() {
  document.getElementById('joinTIMEdemo').innerHTML = new Date();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...