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

來源:酷知科普網 6.07K

可能很多朋友都遇到過這樣的情況,那就是使用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張
熱門標籤