Document.write()

O método Document.write() grava uma sequência de caracteres em um documento aberto por document.open() (en-US).

Nota: à medida que document.write grava no fluxo de documentos, chamando document.write em um documento fechado (carregado) invoca automaticamente document.open, que limpará o documento (en-US).

Sintaxe

js
document.write(markup);

Parametros

markup

Uma string contendo o texto a ser gravado no documento.

Exemplo

html
<html>
  <head>
    <title>Escreva exemplo</title>

    <script>
      function newContent() {
        document.open();
        document.write("<h1>Sair com o velho - entrar com o novo!</h1>");
        document.close();
      }
    </script>
  </head>

  <body onload="newContent();">
    <p>Algum conteúdo do documento original.</p>
  </body>
</html>

Notas

Escrevendo em um documento que já foi carregado sem chamar document.open() (en-US) automaticamente vai chamar document.open. Ao términno da escrita, é recomendável chamar document.close() para dizer ao navegador para encerrar o carregamento da página. O texto que você escreve é analisado no modelo de estrutura do documento. No exemplo acima, o elemento h1 se torna um nó (node) no documento.

Se chamar document.write() incorporada em uma tag HTML <script> embutida, então document.open() não será chamada. Por exemplo:

html
<script>
  document.write("<h1>Título principal</h1>");
</script>

Nota: document.write e document.writeln não funcionam em documentos XHTML (você receberá o erro "Operation is not supported" [NS_ERROR_DOM_NOT_SUPPORTED_ERR] no console de erros). Isso acontece ao abrir um arquivo local com a extensão .xhtml ou em qualquer documento exibido com um MIME type application/xhtml+xml MIME type (en-US). Mais informações disponíveis em W3C XHTML FAQ.

Nota: document.write em deferred ou asynchronous scripts será ignorado, e você receberá uma mensagem como "A call to document.write() from an asynchronously-loaded external script was ignored" no console de erros.

Nota: Somente no Edge, chamando document.write mais de uma vez em <iframe> causa o erro "SCRIPT70: Permission denied".

Nota: A partir de 55, Chrome não executará elementos <script> injetados via document.write() caso haja falta de cache HTTP para usuários em uma conexão 2G. Há uma lista de condições que precisam ser atendidas para que isso seja verdade.

Especificações

Specification
HTML Standard
# dom-document-write-dev

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também