N'oubliez pas qu'après le chargement de la page, le flux de sortie du navigateur est automatiquement fermé. Après cela, toute méthode document.write () qui fonctionne sur la page actuelle ouvrira un nouveau flux de sortie, qui effacera le contenu de la page actuelle (y compris toutes les variables ou valeurs du document source). Par conséquent, si vous souhaitez remplacer la page actuelle par le HTML généré par le script, vous devez connecter le contenu HTML et le affecter à une variable, et utiliser une méthode document.write () pour terminer l'opération d'écriture. Sans effacer le document et ouvrir un nouveau flux de données, un appel document.write () peut tout faire.
Une autre chose à expliquer sur la méthode document.write () est sa méthode connexe Document.close (). Une fois que le script a écrit le contenu de la fenêtre (que ce soit cette fenêtre ou une autre fenêtre), le flux de sortie doit être fermé. Après la dernière méthode Document.Write () du script de retard, vous devez vous assurer que la méthode document.close () est incluse. Si vous ne le faites pas, vous ne pouvez pas afficher des images et des formulaires. Et, toute méthode par la suite appelée document.write () ne ajoutera que le contenu à la page sans effacer le contenu existant pour écrire la nouvelle valeur. Pour démontrer la méthode document.write (), nous fournissons deux versions de la même application. L'un écrit du contenu d'un document contenant le script, et un autre écrit du contenu d'une fenêtre distincte. Veuillez cliquer sur chaque document de l'éditeur de texte, enregistrer avec l'extension de fichier .html et ouvrir le document dans le navigateur.
L'exemple 1 crée un bouton qui combine un nouveau contenu HTML pour le document, y compris les balises HTML pour le nouveau titre de document et les attributs de couleur de la balise. Dans l'exemple, il existe un opérateur + = qui n'est pas familier aux lecteurs. Il ajoute la chaîne à droite à la variable à sa gauche. Cette variable est utilisée pour stocker la chaîne. Cet opérateur peut facilement combiner plusieurs instructions distinctes en chaînes longues. En utilisant le contenu combiné dans la variable NewContent, l'instruction Document.Write () peut écrire tout le nouveau contenu dans le document, effacer complètement le contenu dans l'exemple 1. Ensuite, vous devez appeler l'instruction document.close () pour fermer le flux de sortie. Lors du chargement du document et de la cliquetis sur le bouton, vous pouvez remarquer que le titre du document dans la barre de titre du navigateur change en conséquence. Lorsque vous revenez au document d'origine et cliquez à nouveau sur le bouton, vous pouvez voir que la deuxième page écrite se charge dynamiquement encore plus rapidement que le rechargement du document d'origine.
Exemple 1 Utilisez Document.Write () dans la fenêtre actuelle.
<! Doctype html public "- // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html xmlns = "http://www.w3.org/1999/xhtml"> <tit-title> Écriture au même doc </ title> <script linguisse = "javascript"> function rewrite () {// assemble contenu pour la nouvelle fenêtre var newcontent = "<html> <ead> <t titre> a nouveau doc </taptin bgcolor = 'aqua'> <h1> Ce document est tout nouveau. </h1> "newContent + =" Cliquez sur le bouton de retour pour voir le document d'origine. " newContent + = "</ body> </html>" // Écrivez html à un nouveau document de document de fenêtre.Write (newContent) document.close () // Fermer la mise en page Stream} </ script> </ head> <corpsDans l'exemple 2, la situation est un peu compliquée car le script crée une fenêtre enfant dans laquelle le document complet généré par le script sera écrit. Pour garder la référence à la nouvelle fenêtre active dans les deux fonctions, nous déclarons la variable Newwindow en tant que variable globale. Lorsque la page est chargée, le gestionnaire d'événements Onload appelle la fonction MAKENWWindow (), qui génère une fenêtre enfant vide. De plus, nous ajoutons une propriété au troisième paramètre de la méthode Window.Open () pour rendre la barre d'état de la fenêtre enfant visible.
Le bouton de la page appelle la méthode SubWrite (), et la première tâche qu'il effectue est de vérifier les propriétés fermées de la fenêtre enfant. Si la fenêtre de référence est fermée, cette propriété (uniquement présente dans les versions du navigateur plus récentes) renvoie true. Si tel est le cas (si l'utilisateur ferme manuellement la fenêtre), la fonction appelle à nouveau la fonction makewwindow () pour rouvrir la fenêtre.
Après l'ouverture de la fenêtre, le nouveau contenu est combiné sous forme de variable de chaîne. Comme dans l'exemple 1, écrivez du contenu à la fois (bien qu'il ne soit pas nécessaire pour une fenêtre séparée), puis appelez la méthode close (). Mais notez qu'une différence importante: les méthodes d'écriture () et de clôture () spécifient clairement les fenêtres enfants.
Exemple 2 Utiliser document.write () dans une autre fenêtre
<! Doctype html public "- // w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html xmlns = "http://www.w3.org/1999/xhtml"> <Title> Écriture à subwindow </ititle> <script linguisse = "javascrip Nouvelle fenêtre si quelqu'un l'a fermé if (newwindow.closed) {makewwindow ()} // amenez subwindow à front newwindow.focus () // assemble du contenu pour une nouvelle fenêtre var newcontent = "<html> <adread> <itle> un nouveau doc </ title> </ad>" newcontent + "<body bgcolor = 'coral'> <h> Ce document est un document de la marque est de la marque bgccolor = 'coral'> <h> Nouveau. </h1> "neftcontent + =" </ body> </html> "// Écrivez HTML à un nouveau document de fenêtre newwindow.document.write (newcontent) newwindow.document.close () // Fermer Layout Stream} </ script> </-head> <bouton" bouton " Subwindow "onclick =" subwrite () "> </ form> </ body> </html>