โปรดจำไว้ว่าหลังจากโหลดหน้าเว็บแล้วสตรีมเอาต์พุตของเบราว์เซอร์จะถูกปิดโดยอัตโนมัติ หลังจากนี้วิธีการใด ๆ WWRITE () ที่ทำงานในหน้าปัจจุบันจะเปิดกระแสเอาต์พุตใหม่ซึ่งจะล้างเนื้อหาของหน้าปัจจุบัน (รวมถึงตัวแปรหรือค่าใด ๆ ของเอกสารแหล่งที่มา) ดังนั้นหากคุณต้องการแทนที่หน้าปัจจุบันด้วย HTML ที่สร้างขึ้นโดยสคริปต์คุณต้องเชื่อมต่อเนื้อหา HTML และกำหนดให้กับตัวแปรและใช้วิธีการ Document.write () เพื่อดำเนินการเขียนให้เสร็จสมบูรณ์ โดยไม่ต้องล้างเอกสารและเปิดสตรีมข้อมูลใหม่การโทร Document.write () สามารถทำทุกอย่างได้
อีกสิ่งหนึ่งที่จะอธิบายเกี่ยวกับวิธีการ document.write () คือวิธีการที่เกี่ยวข้อง document.close () หลังจากสคริปต์เขียนเนื้อหาไปยังหน้าต่าง (ไม่ว่าจะเป็นหน้าต่างนี้หรืออื่น ๆ ) ต้องปิดสตรีมเอาต์พุต หลังจาก method.write () วิธีการของสคริปต์การหน่วงเวลาคุณต้องตรวจสอบให้แน่ใจว่าวิธีการ document.close () รวมอยู่ด้วย หากคุณไม่ทำเช่นนั้นคุณไม่สามารถแสดงภาพและรูปแบบได้ และวิธีการใด ๆ ที่เรียกว่า document.write () จะผนวกเนื้อหาเข้ากับหน้าโดยไม่ต้องล้างเนื้อหาที่มีอยู่เพื่อเขียนค่าใหม่ เพื่อแสดงวิธีการ Document.write () เราได้จัดเตรียมแอปพลิเคชันเดียวกันสองเวอร์ชัน หนึ่งเขียนเนื้อหาไปยังเอกสารที่มีสคริปต์และอีกรายการเขียนเนื้อหาไปยังหน้าต่างแยกต่างหาก โปรดคลิกที่เอกสารแต่ละฉบับในตัวแก้ไขข้อความบันทึกด้วยส่วนขยายไฟล์. html และเปิดเอกสารในเบราว์เซอร์
ตัวอย่างที่ 1 สร้างปุ่มที่รวมเนื้อหา HTML ใหม่สำหรับเอกสารรวมถึงแท็ก HTML สำหรับชื่อเอกสารใหม่และแอตทริบิวต์สีของแท็ก ในตัวอย่างมีตัวดำเนินการ += ที่ไม่คุ้นเคยกับผู้อ่าน มันเพิ่มสตริงทางขวาไปยังตัวแปรทางซ้าย ตัวแปรนี้ใช้เพื่อเก็บสตริง ตัวดำเนินการนี้สามารถรวมข้อความแยกต่างหากหลายรายการไว้ในสายยาวได้อย่างง่ายดาย การใช้เนื้อหาที่รวมกันในตัวแปร newContent คำสั่ง document.write () สามารถเขียนเนื้อหาใหม่ทั้งหมดลงในเอกสารการล้างเนื้อหาอย่างสมบูรณ์ในตัวอย่าง 1 จากนั้นคุณต้องโทรไปที่คำสั่ง document.close () เพื่อปิดสตรีมเอาต์พุต เมื่อโหลดเอกสารและคลิกปุ่มคุณสามารถสังเกตได้ว่าชื่อเอกสารในแถบชื่อเรื่องของเบราว์เซอร์จะเปลี่ยนเป็นผลลัพธ์ เมื่อคุณกลับไปที่เอกสารต้นฉบับและคลิกปุ่มอีกครั้งคุณจะเห็นว่าหน้าสองที่เขียนแบบไดนามิกจะโหลดเร็วกว่าการโหลดเอกสารต้นฉบับซ้ำ
ตัวอย่างที่ 1 ใช้ document.write () ในหน้าต่างปัจจุบัน
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> xmlns = "http://www.w3.org/1999/xhtml"> <title> การเขียนไปยังเอกสารเดียวกัน </title> <ภาษาสคริปต์ = "javascript"> ฟังก์ชั่น rewrite () {// ประกอบเนื้อหาสำหรับหน้าต่างใหม่ bgColor = 'aqua'> <h1> เอกสารนี้เป็นแบรนด์ใหม่ </h1> "newContent +=" คลิกปุ่มย้อนกลับเพื่อดูเอกสารต้นฉบับ " newContent += "</body> </html>" // เขียน html ไปยังเอกสารหน้าต่างเอกสารใหม่เอกสารเขียน (newContent) document.close () // ปิดสตรีมเค้าโครง} </script> </head> <body> <body> <form>ในตัวอย่างที่ 2 สถานการณ์มีความซับซ้อนเล็กน้อยเนื่องจากสคริปต์สร้างหน้าต่างลูกซึ่งเอกสารทั้งหมดที่สร้างโดยสคริปต์จะถูกเขียนขึ้น เพื่อให้การอ้างอิงถึงหน้าต่างใหม่ที่ใช้งานอยู่ในทั้งสองฟังก์ชั่นเราจึงประกาศตัวแปร Newwindow เป็นตัวแปรส่วนกลาง เมื่อมีการโหลดหน้าเว็บตัวจัดการเหตุการณ์ ONLOAD จะเรียกฟังก์ชัน MakenewWindow () ซึ่งสร้างหน้าต่างลูกที่ว่างเปล่า นอกจากนี้เราเพิ่มคุณสมบัติลงในพารามิเตอร์ที่สามของวิธี window.open () เพื่อให้แถบสถานะของหน้าต่างเด็กมองเห็นได้
ปุ่มบนหน้าเว็บเรียกเมธอด subwrite () และงานแรกที่ดำเนินการคือการตรวจสอบคุณสมบัติปิดของหน้าต่างเด็ก หากหน้าต่างอ้างอิงถูกปิดคุณสมบัตินี้ (มีอยู่ในรุ่นเบราว์เซอร์รุ่นใหม่เท่านั้น) จะส่งกลับ TRUE หากเป็นกรณีนี้ (หากผู้ใช้ปิดหน้าต่างด้วยตนเอง) ฟังก์ชั่นจะเรียกฟังก์ชั่น MakenewWindow () อีกครั้งเพื่อเปิดหน้าต่างอีกครั้ง
หลังจากเปิดหน้าต่างแล้วเนื้อหาใหม่จะรวมกันเป็นตัวแปรสตริง ดังตัวอย่างที่ 1 ให้เขียนเนื้อหาในครั้งเดียว (แม้ว่าจะไม่จำเป็นสำหรับหน้าต่างแยกต่างหาก) จากนั้นเรียกใช้เมธอดปิด () แต่โปรดทราบว่าความแตกต่างที่สำคัญอย่างหนึ่ง: ทั้งวิธีการเขียน () และปิด () ระบุหน้าต่างเด็กอย่างชัดเจน
ตัวอย่างที่ 2 ใช้ document.write () ในหน้าต่างอื่น
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> xmlns = "http://www.w3.org/1999/xhtml"> <title> การเขียนไปยัง subwindow </title> <ภาษาสคริปต์ = "javascript"> var newwindow function makenewindow (newWindow = window.Open ("" "" หน้าต่างใหม่ถ้ามีคนปิดถ้า (newwindow.closed) {makenewwindow ()} // นำหน้าต่างย่อยไปที่หน้า newWindow.focus () // รวบรวมเนื้อหาสำหรับหน้าต่างใหม่ var newContent = "<html> <head> ใหม่. </h1> "newContent +=" </body> </html> "// เขียน html ไปยังเอกสารหน้าต่างใหม่ newWindow.document.write (newContent) newWindow.document.close () <//การปิดการใช้งาน subwindow "onclick =" subwrite () "> </form> </body> </html>