document.write()怎么在JavaScript中使用

document.write()怎么在JavaScript中使用?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供萬州企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為萬州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

<!DOCTYPE html>   
<html>   
  <head>   
  <meta charset=" utf-8">      
  <title>Document</title>   
  <script type="text/javascript"> 
    window.onload=function(){
      document.write("重溫 JavaScript");
    }
  </script> 
</head> 
<body> 
  <div>Hello JavaScript</div> 
</body> 
</html>

從以上代碼的可以看出document.write()函數(shù)將原來的文檔內(nèi)容清空了,下面介紹一下出現(xiàn)此種情況的原因:

window.onload事件是在文檔內(nèi)容完全加載完畢再去執(zhí)行事件處理函數(shù),當(dāng)然文檔流已經(jīng)關(guān)閉了,這個時候執(zhí)行doucment.writ()函數(shù)會自動調(diào)用document.open()函數(shù)創(chuàng)建一個新的文檔流,并寫入新的內(nèi)容,再通過瀏覽器展現(xiàn),這樣就會覆蓋原來的內(nèi)容。不過很多朋友還有會這樣的疑問,為什么類似下面的情況,原來網(wǎng)頁中的內(nèi)容不會被覆蓋,代碼如下:

<!DOCTYPE html>   
<html>   
  <head>   
  <meta charset=" utf-8">     
  <title>Document</title>   
  <script type="text/javascript"> 
    document.write("重溫 JavaScript");
  </script> 
</head> 
<body> 
  <div>Hello JavaScript</div> 
</body> 
</html>

在以上代碼中,原來的文檔內(nèi)容并沒有被清空,這是因為當(dāng)前文檔流是由瀏覽器所創(chuàng)建,并且document.wirte()函數(shù)身處其中,也就是執(zhí)行此函數(shù)的時候文檔流并沒有被關(guān)閉,這個時候不會調(diào)用document.open()函數(shù)創(chuàng)建新文檔流,所以也就不會被覆蓋了??赡苓€有朋友會問為什么下面的方式還是不行,代碼如下:

<!DOCTYPE html>   
<html>   
<head>   
  <meta charset=" utf-8">     
  <title>Document</title>   
  <script type="text/javascript">
    document.close(); 
    document.write("重溫 JavaScript");
  </script> 
</head> 
<body> 
  <div>Hello JavaScript</div> 
</body> 
</html>

上面使用document.close()關(guān)閉文檔流了,為什么還是不能夠覆蓋原來的內(nèi)容的,很遺憾,文檔流是由瀏覽器創(chuàng)建,無權(quán)限手動關(guān)閉,document.close()函數(shù)只能夠關(guān)閉由document.open()函數(shù)創(chuàng)建的文檔流??聪旅娴拇a實例:

<!DOCTYPE html>    
<html>    
<head>    
  <meta charset=" utf-8">      
  <title>Document</title>   
  <script type="text/javascript">  
  function create(){ 
    var newWindow=window.open("","Document","_blank"); 
    newWindow.document.write("Hello JavaScript"); 
    newWindow.document.close(); 
    newWindow.document.write("覆蓋后的輸出"); 
  } 
  window.onload=function(){ 
    var obt=document.getElementById("bt"); 
    obt.onclick=function(){ 
      create(); 
    } 
  } 
</script> 
</head>  
<body>  
  <div id="print">Hello JavaScript</div> 
  <input type="button" id="bt" value="查看效果"/> 
</body>  
</html>

由doucment.open()創(chuàng)建的文檔流就可以由document.close()關(guān)閉,那么第二個document.write()輸出的內(nèi)容會覆蓋掉第一個輸出的內(nèi)容。

異步引用外部JavaScript時,必須先運行document.open()清空文檔,然后才能運行document.write(),參數(shù)寫在body內(nèi)容的開頭。

如果不先運行document.open(),直接運行document.write(),則無效且Chrome有如下提示:

document.write()怎么在JavaScript中使用

// asyncWrite.js
document.open();
document.write('<p>test</p>');
document.close();
<!-- asyncWrite.html -->
<!-- 運行前 -->
<body>
  <script src="asyncWrite.js" async></script>
</body>
<!-- 運行后 -->
<body>
  <p>test</p>
</body>

document.write()也能寫入含有script標(biāo)簽的字符串,但是需要轉(zhuǎn)義。寫入的script標(biāo)簽中的內(nèi)容會正常運行。

<!-- 運行前 -->
<script>
  document.write('<script>document.write("<p>test</p>");<\/script>');
</script>
<!-- 運行后 -->
<script>
  document.write('<script>document.write("<p>test</p>");<\/script>');
</script>
<script>document.write("<p>test</p>");</script>
<p>test</p>

document.write()可以傳入多個參數(shù)。

<!-- 運行前 -->
<body>
  <script>
    document.write('<h3>multiArgument</h3>','<p>test</p>');
  </script>
</body>
<!-- 運行后 -->
<body>
  <script>
    document.write('<h3>multiArgument</h3>','<p>test</p>');
  </script>
  <h3>multiArgument</h3>
  <p>test</p>
</body>

關(guān)于document.write()怎么在JavaScript中使用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

名稱欄目:document.write()怎么在JavaScript中使用
轉(zhuǎn)載源于:http://bm7419.com/article38/jjedpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站排名、做網(wǎng)站、品牌網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司