Lembre -se de que depois que a página é carregada, o fluxo de saída do navegador é fechado automaticamente. Depois disso, qualquer método Document.Write () que opera na página atual abrirá um novo fluxo de saída, que limpará o conteúdo da página atual (incluindo quaisquer variáveis ou valores do documento de origem). Portanto, se você deseja substituir a página atual pelo HTML gerado pelo script, você deve conectar o conteúdo HTML e atribuí -lo a uma variável e usar um método Document.Write () para concluir a operação de gravação. Sem limpar o documento e abrir um novo fluxo de dados, uma chamada document.Write () pode fazer tudo.
Outra coisa a ser explicada sobre o método Document.Write () é o seu Document.Close (). Depois que o script grava o conteúdo na janela (seja esta ou em outra janela), o fluxo de saída deve ser fechado. Após o último documento.Write () Método do script de atraso, você deve garantir que o método document.close () esteja incluído. Se você não o fizer, não pode exibir imagens e formulários. E qualquer método posteriormente chamado Document.Write () apenas anexará o conteúdo à página sem limpar o conteúdo existente para escrever o novo valor. Para demonstrar o método Document.Write (), fornecemos duas versões do mesmo aplicativo. Um escreve conteúdo em um documento que contém o script e outro grava conteúdo em uma janela separada. Clique em cada documento no editor de texto, salve -o com a extensão do arquivo .html e abra o documento no navegador.
O Exemplo 1 cria um botão que combina novo conteúdo HTML para o documento, incluindo as tags HTML para o novo título do documento e os atributos de cores da tag. No exemplo, existe um operador += que não é familiar para os leitores. Ele adiciona a string à direita à variável à sua esquerda. Essa variável é usada para armazenar a string. Este operador pode combinar facilmente várias declarações separadas em seqüências longas. Usando o conteúdo combinado na variável NewContent, a instrução document.write () pode escrever todo o novo conteúdo no documento, limpando completamente o conteúdo no Exemplo 1. Então você precisa ligar para a instrução document.close () para fechar o fluxo de saída. Ao carregar o documento e clicar no botão, você pode observar que o título do documento na barra de título do navegador muda como resultado. Quando você volta ao documento original e clica no botão novamente, pode ver que a segunda página escrita é carregada dinamicamente ainda mais rapidamente do que recarregar o documento original.
Exemplo 1 Use document.Write () na janela atual.
<! xmlns = "http://www.w3.org/1999/xhtml"> <title> escrevendo no mesmo doc. bgcolor = 'aqua'> <h1> Este documento é novo. </h1> "newContent +=" Clique no botão Voltar para ver o documento original ". newContent += "</body> </html>" // escreva html para novo documento de document.write (newcontent) document.close () // feche o fluxo de layout} </script> </head> <body> <morm> <storm> <input Type = "" value "">
No Exemplo 2, a situação é um pouco complicada porque o script cria uma janela infantil na qual todo o documento gerado pelo script será escrito. Para manter a referência à nova janela ativa nas duas funções, declaramos a variável NewWindow como uma variável global. Quando a página é carregada, o manipulador de eventos OnLoad chama a função makewwindow (), que gera uma janela de criança vazia. Além disso, adicionamos uma propriedade ao terceiro parâmetro do método window.open () para tornar visível a barra de status da janela infantil.
O botão na página chama o método Subwrite (), e a primeira tarefa que ele executa é verificar as propriedades fechadas da janela infantil. Se a janela de referência estiver fechada, esta propriedade (presente apenas nas versões mais recentes do navegador) retornará true. Se esse for o caso (se o usuário fechar manualmente a janela), a função chama a função makenewWindow () novamente para reabrir a janela.
Depois que a janela é aberta, o novo conteúdo é combinado como uma variável de string. Como no Exemplo 1, escreva o conteúdo de uma só vez (embora não seja necessário para uma janela separada) e ligue para o método Close (). Mas observe que uma diferença importante: os métodos Write () e Close () especificam claramente o Windows Child.
Exemplo 2 Use Document.Write () em outra janela
<! xmlns = "http://www.w3.org/1999/xhtml"> <title> escrevendo para sub Window </ititle> <script linguage = "javaScript"> var newwindow função makenewindow () {newwindow = window.open ("" "" "," " Faça uma nova janela se alguém o fechou se (newwindow.closed) {makenewwindow ()} // traga o subwindow para a frente newwindow.focus () // monta conteúdo para nova janela var newcontent = "newcontent += <html> <head> <title> um novo doc. new. SubWindow "OnClick =" Subwrite () "> </mand> </body> </html>