關於document.write()重寫頁面


今天碰到了一個以前沒注意的問題即:document.write(),在此拿來分享!

document.write是最基本的JavaScript命令之一,這個命令簡單地打印指定的文本內容到頁面上(注意是頁面,所以想用write指定具體打印到哪個地方的同學可以心涼了)。

使用這個方法會碰到兩個狀態:1、添加內容到頁面中;2、重寫頁面;為什么出兩種狀態?

頁面在生成時有一個輸入流的狀態。在頁面加載時這個狀態是自動打開的,這時內容會從上至下添加內容。

此時調用document.write會把內容寫進頁面里面,但我們不能准確控制加載的位置,只能根據write()方法調用的位置使其內容放入頁面大概的位置。

例如:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title></title>
 6     <meta charset="utf-8" />
 7 </head>
 8 <body>
 9     <script type="text/javascript">
10         document.write("我是輸出內容!");
11     </script>
12     <h1>我是HTML標簽內容!</h1>
13 </body>
14 </html>
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title></title>
 6     <meta charset="utf-8" />
 7 </head>
 8 <body>
 9     <h1>我是HTML標簽內容!</h1>
10     <script type="text/javascript">
11         document.write("我是輸出內容!");
12     </script>
13 </body>
14 </html>

而當頁面加載完成后即window.onload后,會自動的運行document.close()方法關閉這個輸入流,如果此時我們再運行document.write會打開一個新的輸入流在頁面,此時會重寫頁面。

(注意:重寫的是body里面的內容)

所以,如果想添加內容,還是用innnerHTML吧;

當然如果想重寫頁面,在window.onload后調用document.write就行了,但要記得在寫完后調用close()方法關閉輸入流,不關閉的話據說會阻擋圖片的顯示,但我沒測試。

 

歡迎批評指正,有更好的想法多多交流~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM