Spec-Zone.ru › Web APIs

Документ: метод write()

Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она может быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохраняться только для совместимости. Избегайте её использования и обновите существующий код, если это возможно; см. таблицу совместимости внизу этой страницы, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любое время.

Предупреждение: Использование метода document.write() настоятельно не рекомендуется.

Как предупреждает сам HTML-спецификация:

Этот метод имеет очень специфичное поведение. В некоторых случаях этот метод может повлиять на состояние парсера HTML во время его работы, что приводит к DOM, который не соответствует исходному документу (например, если записанная строка — это строка "<plaintext>" или "<!--"). В других случаях вызов может сначала очистить текущую страницу, как будто был вызван document.open(). В ещё большем количестве случаев метод просто игнорируется или вызывает исключение. Агенты пользователей явным образом разрешают не выполнять script элементы, вставленные с помощью этого метода. И, что ещё хуже, точное поведение этого метода в некоторых случаях может зависеть от задержки сети, что может привести к ошибкам, которые очень трудно отладить. По всем этим причинам использование этого метода настоятельно не рекомендуется. Поэтому избегайте использования document.write() — и, если возможно, обновите любой существующий код, который его всё ещё использует.

Метод document.write() записывает строку текста в поток документа, открытый с помощью document.open().

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

Синтаксис

write(markup)

Параметры

markup

Строка, содержащая текст, который будет записан в документ.

Возвращаемое значение

Ничего (undefined).

Примеры

<p>Some original document content.</p>
<button onclick="newContent()">Replace document content</button>
function newContent() {
  document.open();
  document.write("<h1>Out with the old, in with the new!</h1>");
  document.close();
}

Примечания

Текст, который вы записываете, анализируется в модель структуры документа. В примере выше элемент h1 становится узлом в документе.

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

Если вызов document.write() вложен в тег <script>, то document.open() не будет вызван. Например:

<script>
  document.write("<h1>Main title</h1>");
</script>

document.write() и document.writeln не работают в XHTML-документах (вы получите ошибку "Операция не поддерживается" (NS_ERROR_DOM_NOT_SUPPORTED_ERR) в консоли ошибок). Это происходит при открытии локального файла с расширением .xhtml или для любого документа, предоставляемого с типом MIME application/xhtml+xml. Более подробную информацию можно найти в часто задаваемых вопросах W3C по XHTML.

Использование document.write() в отложенных или асинхронных скриптах будет проигнорировано, и в консоли ошибок вы получите сообщение вроде "Вызов document.write() из асинхронно загруженного внешнего скрипта был проигнорирован".

Только в Edge, вызов document.write() более одного раза во <iframe> вызывает ошибку "SCRIPT70: Доступ запрещен".

Начиная с версии 55, Chrome не будет выполнять <script> элементы, вставленные с помощью document.write(), при соблюдении определённых условий. Более подробную информацию можно найти в Запрете вмешательства в документ.write().

Спецификации

Спецификация
HTML
# dom-document-write-dev

Совместимость с браузерами

Десктоп Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
write 45
1–45Поддерживается только для HTMLDocument, а не для всех Document объектов.
12 69
1–69Поддерживается только для HTMLDocument, а не для всех Document объектов.
3 11
1–11Поддерживается только для HTMLDocument, а не для всех Document объектов.
45
18–45Поддерживается только для HTMLDocument, а не для всех Document объектов.
79
4–79Поддерживается только для HTMLDocument, а не для всех Document объектов.
10.1 11
1–11Поддерживается только для HTMLDocument, а не для всех Document объектов.
5.0
1.0–5.0Поддерживается только для HTMLDocument, а не для всех Document объектов.
45
4.4–45Поддерживается только для HTMLDocument, а не для всех Document объектов.

См. также

  • element.innerHTML
  • document.createElement()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Document/write

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API