Почему этот код не работает? Javascript и HTML. Пожалуйста, смотрите детали - PullRequest
3 голосов
/ 04 мая 2020

Это мой HTML файл.

   <body>
            <header>
                <h3 id = "TestID"> Test </h3>
            </header>
        </body>

        <script src = "MessagingPage.js"></script>

Это мой JS файл

document.getElementById("TestID").addEventListener("load", function(){
this.innerHTML("Hi");
})

document.write("Hello World");

Теперь, когда я загружаю HTML, я получаю «Тест» в браузере. Тем не менее, то, что должно быть там, это "Привет" Я не понимаю, почему это происходит. Можете ли вы помочь мне понять? Я только начинаю, поэтому, пожалуйста, объясните простым языком.

Спасибо, что нашли время, чтобы прочитать это:)

Ответы [ 2 ]

4 голосов
/ 04 мая 2020

У вас две проблемы.


Только элементы, загружающие внешнее содержимое, имеют событие load (например, iframe или img).

h3 не загружает никакого внешнего контента, поэтому не имеет события load.

Возможно, вам следует привязать ваш обработчик событий к window.


innerHTML - это строка , а не функция.


addEventListener("load", function() {
  document.getElementById("TestID").innerHTML = "Hi";
})

document.write("Hello World");
  <header>
    <h3 id="TestID"> Test </h3>
  </header>

<script src="MessagingPage.js"></script>
0 голосов
/ 04 мая 2020

Включение скрипта внутри <body> и обновление файла JS решит проблему.

Вот пример рабочего кода:

Обновлено HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>Demo</title>
  </head>
  <body>
    <header>
      <h3 id = "TestID"> Test </h3>
    </header>
    <script src = "/MessagingPage.js"></script>
  </body>
</html>

Обновлено JS:

// MessagingPage.js
document.getElementById("TestID").innerHTML = "Hi"
document.write("Hello World");

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...