今天碰到了一個之前沒注意的問題即:document.write(),在此拿來分享!javascript
document.write是最基本的JavaScript命令之一,這個命令簡單地打印指定的文本內容到頁面上(注意是頁面,因此想用write指定具體打印到哪一個地方的同窗能夠心涼了)。html
使用這個方法會碰到兩個狀態:一、添加內容到頁面中;二、重寫頁面;爲何出兩種狀態?java
頁面在生成時有一個輸入流的狀態。在頁面加載時這個狀態是自動打開的,這時內容會從上至下添加內容。測試
此時調用document.write會把內容寫進頁面裏面,但咱們不能準確控制加載的位置,只能根據write()方法調用的位置使其內容放入頁面大概的位置。ui
例如:spa
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會打開一個新的輸入流在頁面,此時會重寫頁面。code
(注意:重寫的是body裏面的內容)htm
因此,若是想添加內容,仍是用innnerHTML吧;blog
固然若是想重寫頁面,在window.onload後調用document.write就好了,但要記得在寫完後調用close()方法關閉輸入流,不關閉的話聽說會阻擋圖片的顯示,但我沒測試。圖片
歡迎批評指正,有更好的想法多多交流~