酷知百科網

位置:首頁 > 遊戲數碼 > 電腦

JS 中document.write()的用法和清空

電腦6.43K

可能很多朋友都遇到過這樣的情況,那就是使用e()函數向網頁中寫內容的時候,會把文檔中的原來的內容給清空,這一點對於初學者來說算是一個困擾,下面就介紹一下爲什麼會出現這種情況,當然也就知道如何避免此種情況的發生了。

操作方法

(01)先看一段代碼實例:

JS 中e()的用法和清空

(02)從以上代碼的可以看出e()函數將原來的文檔內容清空了,下面介紹一下出現此種情況的原因:ad事件是在文檔內容完全加載完畢再去執行事件處理函數,當然文檔流已經關閉了,這個時候執行()函數會自動調用()函數創建一個新的文檔流,並寫入新的內容,再透過瀏覽器展現,這樣就會覆蓋原來的內容。不過很多朋友還有會這樣的疑問,爲什麼類似下面的情況,原來網頁中的內容不會被覆蓋,代碼如下:

JS 中e()的用法和清空 第2張

(03)在以上代碼中,原來的文檔內容並沒有被清空,這是因爲當前文檔流是由瀏覽器所創建,並且e()函數身處其中,也就是執行此函數的時候文檔流並沒有被關閉,這個時候不會調用()函數創建新文檔流,所以也就不會被覆蓋了。可能還有朋友會問爲什麼下面的方式還是不行,代碼如下:

JS 中e()的用法和清空 第3張

(04)上面使用e()關閉文檔流了,爲什麼還是不能夠覆蓋原來的內容的,很遺憾,文檔流是由瀏覽器創建,無權限手動關閉,e()函數只能夠關閉由()函數創建的文檔流。看下面的代碼實例:

JS 中e()的用法和清空 第4張

(05)由()創建的文檔流就可以由e()關閉,那麼第二個e()輸出的內容會覆蓋掉第一個輸出的內容。異步引用外部JavaScript時,必須先執行()清空文檔,然後才能執行e(),參數寫在body內容的開頭。如果不先執行(),直接執行e(),則無效且Chrome有如下提示:

JS 中e()的用法和清空 第5張

(06)e()也能寫入含有script標籤的字元串,但是需要轉義。寫入的script標籤中的內容會正常執行。

JS 中e()的用法和清空 第6張