Документ: метод 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 | 12 | 69 | 3 | 11 | 45 | 79 | 10.1 | 11 | 5.0 | 45 |
См. также
© 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