javascript window.setTimeout обновляет мою веб-страницу только при первом вызове функции [duplicate]

Вы также можете попробовать PHPStorm в качестве редактора кода. Он найдет много PHP и других синтаксических ошибок, как вы набираете в редакторе.

18
задан NPS 13 November 2013 в 01:09
поделиться

2 ответа

Проблема заключается в том, что при запуске document.write после загрузки документа он перезаписывает весь документ. Если он выполняется до этого, он не перезаписывает его.

Что вы хотите сделать, это установить innerHtml определенного элемента, например:

document.getElementById("myDiv").innerHTML="Sup";
23
ответ дан dave 21 August 2018 в 03:52
поделиться

Давайте рассмотрим, что делает браузер, когда он получает html-файл.

  1. Документ окна открывается для записи. Представьте, что вы открываете текстовый файл.
  2. Браузер записывает содержимое в документ. На этом шаге происходит много магии - объекты создаются и html отображаются как поля.
  3. Документ окна закрывает документ. Как и сохранение текстового файла.

Теперь современные браузеры также предоставляют API-интерфейс документа, который позволяет выполнять именно эти задачи с помощью javascript.

Вы можете открыть документ для записи с использованием document.open(). Вы также можете начать запись контента в документ с помощью document.write(). Наконец, вы можете закрыть документ для записи с помощью document.close(). Поскольку документ всегда нужно открыть для записи перед , который вы пишете, вызов document.write() всегда приводит к неявному document.open().

Перехватывает document.write() вызовы по всему телу html является широко используемым методом, используемым для динамического вставки содержимого строки в html-страницу.

Например, если вы выполняете document.write("<p>holla</p>") в теле html-файла, браузер получит следующее после получения html-файла.

  1. Откройте документ для письмо.
  2. Начните запись содержимого html в документ. Механизм JavaScript выполнит document.write(), когда он встретится с ним, а затем напишет "<p>holla</p>" в эту конкретную строку в документе, точно так же, как если бы строка уже была частью html-файла! Поскольку во время разбора html-файла вызывается document.write(), он просто анализируется как часть страницы.
  3. Закройте документ для записи. Полный анализ.

Если вы используете document.write(), не было бы неожиданностей. Вместо этого вы вызываете document.write() после анализа html.

Итак, что, по-вашему, должно произойти?

Как я уже говорил, документ должен быть открыт для записи до того, как он будет записан в . Теоретически мы можем либо добавить существующий контент, либо просто перезаписать его. Ну, если мы добавим к контенту, мы получим недопустимую страницу html, потому что новые значения появятся после закрытия тегов. Поэтому более разумным поведением является переписывание контента, и это именно то, что происходит.

17
ответ дан linstantnoodles 21 August 2018 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: