Recuerde que después de cargar la página, la secuencia de salida del navegador se cierra automáticamente. Después de esto, cualquier método document.writ () que funcione en la página actual abrirá una nueva transmisión de salida, que borrará el contenido de la página actual (incluidas las variables o valores del documento de origen). Por lo tanto, si desea reemplazar la página actual con el HTML generado por el script, debe conectar el contenido HTML y asignarla a una variable, y usar un método Document.Write () para completar la operación de escritura. Sin borrar el documento y abrir un nuevo flujo de datos, una llamada document.write () puede hacer todo.
Otra cosa a explicar sobre el método document.write () es su método relacionado document.close (). Después de que el script escribe el contenido en la ventana (ya sea esta u otra ventana), la secuencia de salida debe estar cerrada. Después del último método document.write () del script de retraso, debe asegurarse de que se incluya el método document.close (). Si no lo hace, no puede mostrar imágenes y formularios. Y, cualquier método de document.write () posteriormente llamado solo agregará el contenido a la página sin borrar el contenido existente para escribir el nuevo valor. Para demostrar el método document.write (), proporcionamos dos versiones de la misma aplicación. Uno escribe contenido en un documento que contiene el script, y otro escribe contenido en una ventana separada. Haga clic en cada documento en el editor de texto, guárdelo con la extensión del archivo .html y abra el documento en el navegador.
El ejemplo 1 crea un botón que combina un nuevo contenido HTML para el documento, incluidas las etiquetas HTML para el nuevo título del documento y los atributos de color de la etiqueta. En el ejemplo, hay un operador += que no es familiar para los lectores. Agrega la cadena a la derecha a la variable a su izquierda. Esta variable se utiliza para almacenar la cadena. Este operador puede combinar fácilmente varias declaraciones separadas en cadenas largas. Utilizando el contenido combinado en la variable NewContent, la instrucción Document.Write () puede escribir todo el contenido nuevo en el documento, bordeando completamente el contenido en el Ejemplo 1. Luego debe llamar a la instrucción Document.Close () para cerrar el flujo de salida. Al cargar el documento y hacer clic en el botón, puede notar que el título del documento en la barra de título del navegador cambia como resultado. Cuando regrese al documento original y haga clic en el botón nuevamente, puede ver que la segunda página escrita se carga dinámicamente aún más rápido que recargar el documento original.
Ejemplo 1 use document.write () en la ventana actual.
< xmlns = "http://www.w3.org/1999/xhtml"> <title> Escribir en el mismo doc </title> <script language = "javascript"> function rewrite () {// Content Content for New Window var NewContent = "<html> <shead> <title> un nuevo documento </stitle> </head>" Newcontent += " bgcolor = 'aqua'> <h1> Este documento es nuevo. </h1> "NewContent +=" Haga clic en el botón Atrás para ver el documento original ". NewContent += "</body> </html>" // Escribe html en una nueva ventana documento document.write (newContent) document.close () // stream de diseño cierre} </script> </thead> <body> <form> <input type = "button" value = "reemplazar contenido" onclick = "rewrite ()"> </form> </body> </html>En el ejemplo 2, la situación es un poco complicada porque el script crea una ventana infantil en la que se escribirá todo el documento generado por el script. Para mantener la referencia a la nueva ventana activa en ambas funciones, declaramos la variable NewWindow como una variable global. Cuando se carga la página, el controlador de eventos Onload llama a la función MakeKenewWindow (), que genera una ventana infantil vacía. Además, agregamos una propiedad al tercer parámetro del método Window.open () para que la barra de estado de la ventana infantil sea visible.
El botón en la página llama al método Subwrite (), y la primera tarea que realiza es verificar las propiedades cerradas de la ventana infantil. Si la ventana de referencia está cerrada, esta propiedad (solo presente en las versiones más nuevas del navegador) devuelve verdadero. Si este es el caso (si el usuario cierra manualmente la ventana), la función llama a la función MakeKenewWindow () nuevamente para reabrir la ventana.
Después de que se abre la ventana, el nuevo contenido se combina como una variable de cadena. Como en el Ejemplo 1, escriba contenido a la vez (aunque no es necesario para una ventana separada) y luego llame al método Close (). Pero tenga en cuenta que una diferencia importante: los métodos Write () y Close () especifican claramente las ventanas infantiles.
Ejemplo 2 use document.write () en otra ventana
< xmlns = "http://www.w3.org/1999/xhtml"> <title> Escribir en subwindow </title> <script language = "javaScript"> var newWindow function makenewwindow () {newwindow = window.open ("" ",", "estatus, altura = 200, 200, = 300")} nueva ventana si alguien lo ha cerrado if (newWindow.Closed) {makenewwindow ()} // trae subwindow a front Newwindow.focus () // ensamble contenido para la nueva ventana var newContent = "<html> <led> <beaT> un nuevo documento </title> </head>" NewContent += "<Body Bgcolor = 'coral' <H1> un nuevo documento es nuevo. </h1> "newContent +=" </body> </html> "// Escriba html en el documento de la ventana newWindow.document.write (newContent) newWindow.document.close () // Cerrar la transmisión de liso} </script> </head> <body upload =" mAkenwindow () "> <<ry forme> Subwindow "onClick =" subwrite () "> </form> </body> </html>