国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js中document.write的那點(diǎn)事

2024-05-06 16:11:56
字體:
供稿:網(wǎng)友

document.write()方法可以用在兩個(gè)方面:頁面載入過程中用實(shí)時(shí)腳本創(chuàng)建頁面內(nèi)容,以及用延時(shí)腳本創(chuàng)建本窗口或新窗口的內(nèi)容。該方法需要一個(gè)字符串參數(shù),它是寫到窗口或框架中的HTML內(nèi)容。這些字符串參數(shù)可以是變量或值為字符串的表達(dá)式,寫入的內(nèi)容常常包括HTML標(biāo)記語言

記住,在載入頁面后,瀏覽器輸出流自動(dòng)關(guān)閉。在此之后,任何一個(gè)對(duì)當(dāng)前頁面進(jìn)行操作的document.write()方法將打開—個(gè)新的輸出流,它將清除當(dāng)前頁面內(nèi)容(包括源文檔的任何變量或值)。因此,假如希望用腳本生成的HTML替換當(dāng)前頁面,就必須把HTML內(nèi)容連接起來賦給一個(gè)變量,使用一個(gè)document.write()方法完成寫操作。不必清除文檔并打開一個(gè)新數(shù)據(jù)流,一個(gè)document.write()調(diào)用就可完成所有的操作。

關(guān)于document.write()方法還有一點(diǎn)要說明的是它的相關(guān)方法document.close()。腳本向窗口(不管是本窗口或其他窗口)寫完內(nèi)容后,必須關(guān)閉輸出流。在延時(shí)腳本的最后一個(gè)document.write()方法后面,必須確保含有document.close()方法,不這樣做就不能顯示圖像和表單。并且,任何后面調(diào)用的document.write()方法只會(huì)把內(nèi)容追加到頁面后,而不會(huì)清除現(xiàn)有內(nèi)容來寫入新值。為了演示document.write()方法,我們提供了同一個(gè)應(yīng)用程序的兩個(gè)版本。一個(gè)向包含腳本的文檔中寫內(nèi)容,另—個(gè)向—個(gè)單獨(dú)的窗口寫內(nèi)容。請(qǐng)?jiān)谖谋揪庉嬈髦墟I人每個(gè)文檔,以.html文件擴(kuò)展名保存,并在瀏覽器中打開文檔。

示例1創(chuàng)建一個(gè)按鈕,它為文檔組合新的HTML內(nèi)容,包括新文檔標(biāo)題的HTML標(biāo)記和標(biāo)記的顏色屬性。示例中有一個(gè)讀者所不熟悉的操作符+=,它把其右側(cè)的字符串加到其左側(cè)的變量中,這個(gè)變量用來存放字符串,這個(gè)操作符能很方便地把幾個(gè)單獨(dú)的語句組合成—個(gè)長(zhǎng)字符串。使用組合在newContent變量中的內(nèi)容,document.write()語句可以把所有新內(nèi)容寫到文檔中,完全清除示例1中的內(nèi)容。然后需要調(diào)用document.close()語句關(guān)閉輸出流。當(dāng)載入該文檔并單擊按鈕時(shí),可以注意到瀏覽器標(biāo)題欄中的文檔標(biāo)題因此而改變。當(dāng)回到原始文檔并再次單擊該按鈕時(shí),可以看到動(dòng)態(tài)寫入的第二個(gè)頁面的載入速度甚至比重載原始文檔還要快。

示例1 在當(dāng)前窗口使用document.write()。
 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Writing to Same Doc</title> 
  2. <script language="JavaScript"
  3. function reWrite(){ 
  4. // assemble content for new window 
  5. var newContent = "<html><head><title>A New Doc</title></head>" 
  6. newContent += "<body bgcolor='aqua'><h1>This document is brand new.</h1>" 
  7. newContent += "Click the Back button to see original document." 
  8. newContent += "</body></html>" 
  9. // write HTML to new window document 
  10. document.write(newContent) 
  11. document.close() // close layout stream 
  12. </script> 
  13. </head> 
  14. <body> 
  15. <form> 
  16. <input type="button" value="Replace Content" onClick="reWrite()"
  17. </form> 
  18. </body> 
  19. </html> 

示例2中,情況有點(diǎn)復(fù)雜,因?yàn)槟_本創(chuàng)建了一個(gè)子窗口,整個(gè)腳本生成的文檔都將寫入該窗口中。為了使新窗口的引用在兩個(gè)函數(shù)中保持激活狀態(tài),我們將newWindow變量聲明為全局變量。頁面載入時(shí),onLoad事件處理調(diào)用makeNewWindow()函數(shù),該函數(shù)生成一個(gè)空的子窗口。另外,我們?cè)趙indow.open()方法的第三個(gè)參數(shù)中加入一個(gè)屬性,使子窗口的狀態(tài)欄可見。

頁面上的按鈕調(diào)用subWrite()方法,它執(zhí)行的第一個(gè)任務(wù)是檢查子窗口的closed屬性。假如關(guān)閉了引用窗口,該屬性(只在較新的瀏覽器版本中存在)返回true。如果是這種情況(假如用戶手動(dòng)關(guān)閉窗口),該函數(shù)再次調(diào)用makeNewWindow()函數(shù)來重新打開那個(gè)窗口。

窗口打開后,新的內(nèi)容作為字符串變量組合在一起。與示例1一樣,一次性寫入內(nèi)容(雖然對(duì)單獨(dú)的窗口沒有必要),接下來調(diào)用close()方法。但是注意一個(gè)重要的區(qū)別:write() 和 close()方法都明顯地指定了子窗口。

示例2 在另一個(gè)窗口中使用document.write()

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Writing to Subwindow</title> 
  2. <script language="JavaScript"> 
  3. var newWindow 
  4. function makeNewWindow(){ 
  5. newWindow = window.open("","","status,height=200,width=300") 
  6.  
  7. function subWrite(){ 
  8. // make new window if someone has closed it 
  9. if(newWindow.closed){ 
  10. makeNewWindow() 
  11. // bring subwindow to front 
  12. newWindow.focus() 
  13. // assemble content for new window 
  14. var newContent = "<html><head><title>A New Doc</title></head>" 
  15. newContent += "<body bgcolor='coral'><h1>This document is brand new.</h1>
  16. newContent += "</body></html>
  17. // write HTML to new window document 
  18. newWindow.document.write(newContent) 
  19. newWindow.document.close() // close layout stream 
  20. </script> 
  21. </head> 
  22.  
  23. <body onLoad="makeNewWindow()"> 
  24. <form> 
  25. <input type="button" value="Write to Subwindow" onClick="subWrite()"> 
  26. </form> 
  27. </body> 
  28. </html> 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 交口县| 内黄县| 根河市| 都江堰市| 酒泉市| 乐平市| 衢州市| 凌云县| 万年县| 桃源县| 香格里拉县| 凭祥市| 临湘市| 汝城县| 内江市| 灌南县| 大同市| 北辰区| 泸定县| 浦县| 汾阳市| 新蔡县| 焉耆| 公主岭市| 滦南县| 石台县| 平果县| 德庆县| 同仁县| 体育| 尖扎县| 湘乡市| 平顶山市| 苏尼特左旗| 阿勒泰市| 金寨县| 大埔县| 巫溪县| 应用必备| 将乐县| 伊春市|