這期內容當中小編將會給大家帶來有關JavaScript中document.write與document.writeln有什么區別,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
兩者都是JavaScript向客戶端輸出的方法,對比可知寫法上的差別是一個ln--line的簡寫,換言之,writeln 方法是以行輸出的,相當于在?winte?輸出后加上一個換行符
注意:document.write方法可以用在兩方面:在網頁載入過程中用實時腳本創建網頁內容以及用延時腳本創建本窗口或新窗口的內容.該方法需要一個字符串參數,它是寫到窗口或框架中的HTML內容.該字符串參數可以是變量或值為字符串的表達式,寫入內容常常包含HTML標記.
記住,載入網頁后,瀏覽器輸出流將自動關閉.在些之后任何一個對當前網頁的document.write()方法都將打開一個新的輸出流,它將清除當前網頁輸出內容(包括源文檔中的任何變是和值).因此,如果希望用腳本生成的HTML內容替換當前網頁,就必須把HTML內容連接起來賦給一個變量.這里,使用document.write()來完成寫操作.不必清除文檔并打開一個新的數據流,一個document.write()調用就OK了.
關于document.write()方法,還需要說明它的相關方法document.close().腳本向窗口(不管是本窗口還是其它窗口)寫完內容后必須關閉輸出流.在腳本的最后一個document.write() 方法后面.必須確保有document.close()方法.不這樣做就不能顯示圖像和表單.而且,后面調用的任何document.write() 只會將內容追加到網頁后,而不會清除現有內容,寫入新值
具體步驟:
1.打開一個空白窗口。
window.open()
2.用 write 方法向空白窗口寫入代碼。
document.write("Line1")
document.write("Line1")
3.用 writeln 方法向空白窗口寫入代碼。
document.writeln("Line1")
document.writeln("Line2")
4.完整代碼示例:
<script>
with(window.open()){
document.write("Line1")
document.write("Line1")
document.writeln("Line1")
document.writeln("Line2")
}
</script>注意:兩種方法僅當在查看源代碼時才看得出區別。
特別提示:把上面的代碼加入網頁中,然后查看彈出窗口的源代碼,將會看到:
Line1Line1Line1
Line2
頁面效果和源代碼如圖。

特別說明
總的來說,一般情況下用兩種方法輸出的效果在頁面上是沒有區別的(除非是輸出到pre或xmp元素內)。
二、document.write()向指定位置寫html
頁面初始化時可以正確寫在select框內
但調用時就寫在控件外了 ,不知道document.write()能否想改變innerHTML或outerHTML來動態寫HTML?以及寫的HTML要用來顯示該如何處理?
如下:
<html>
<head>
</head>
<script type="text/javascript">
function creatOption(){
for(i=0;i<5;i++)
document.write("<option value='"+i+"'>"+i+"</option>");
}
function openWrite(){
var win=window.open();
win.document.write("Line1");
win.document.write("Line1");
win.document.write("<input type='text' value='1234567890' />");
win.document.writeln("Line1");
win.document.writeln("Line2");
}
</script>
<body>
<select id="myselect" name="myselect">
<script language="javascript">
creatOption();
</script>
</select>
<input type="button" value="按鈕" onclick="openWrite()"/>
</body>
</html>關于保留格式,測試一下:
<script>
document.write("<pre>我在pre中不會換行!")
document.write("我在pre中不會換行!")
document.writeln("我在pre中會換行!")
document.writeln("我在pre中會換行!")
document.writeln("我在pre中會換行!</pre>")
</script>Write和Writeln的區別
Write不可以換行,Writeln可以換行。
如何查看Writeln的換行效果
在網頁中是看不到writeln的換行效果的,它是被瀏覽器表現為一個空格顯示出來了。
在HTML文件和JSP的源文件中都看不到效果,讀者可以在標簽中加入預格式標簽查看效果
億速云小編補充:可以在chrome通過f12查看
<script>
document.write("<pre>write");
document.writeln("writln");
document.write("write</pre>");
</script>除了上面這種讀者也可以用open方法重新打開一個窗口來查看
<script>
with(window.open()){
document.write("write")
document.writeln("writeln")
document.writeln("write")
}
</script>然后在彈出的窗口中查看網頁源文件,就可看到效果。筆者經過測試,在chrome 56.0.2924.3中的彈出窗口中沒有查看源文件這一欄,這時候可以“檢查”然后在Element一欄可看到效果,IE11和Firefox50.0中都有查看源文件一欄。
億速云補充:
<html>
<head>
<title>document.write</title>
<script>
document.write("hello");
document.writeln("world");//document.writeln()不能換行,只是多了空格,相當于\r\n
document.writeln("world");
document.write("<br/>");
document.write("hu");
//輸出一個按鈕,注意多個引號的嵌套問題
document.write("<input type='button' value='我是按鈕'/>");
</script>
</head>
<body>
</body>
</html>通過chrome的F12查看

注意:
Note: document.writeln (like document.write) does not work in XHTML documents
write和writeln在XHTML文件不起作用,HTML就是語法相對寬松的XHTML,這也就解釋為什么在html沒有出現換行。點我查看。
html,xhtml和xml的定義:
1、html即是超文本標記語言(Hyper Text Markup Language),是最早寫網頁的語言,但是由于時間早,規范不是很好,大小寫混寫且編碼不規范;
2、xhtml即是升級版的html(Extensible Hyper Text Markup Language),對html進行了規范,編碼更加嚴謹純潔,也是一種過渡語言,html向xml過渡的語言;
3、xml即時可擴展標記語言(Extensible Markup Language),是一種跨平臺語言,編碼更自由,可以自由創建標簽。
4、網頁編碼從html>>xhtml>>xml這個過程發展。
html,xhtml和xml的區別:
1、xhtml對比與html,xhtml文檔具有良好完整的排版,體現在兩方面:a、元素必須要有結束標簽;b、元素必須嵌套;
2、對于html的元素和屬性,xhtml必須小寫,因為xml是嚴格區分大小寫的,<li>和<LI>是不同的標簽;
3、xhtml的屬性值必須在引號之中;
4、xhtml不支持屬性最小化,什么是屬性最小化了?
正確:非最小化屬性(unminimized attributes)
<input checked="checked">
不正確:最小化屬性(minimized attributes)
<input checked>
5、 在xhtml中,name屬性是不贊成使用的,在以后的版本中將被刪除。
再說說為什么網頁編碼要從html>>xhtml>>xml這么發展?
話說早起的網頁使用html語言編寫的,但是它擁有三個嚴重的缺點:
1、編碼不規范,結構混亂臃腫,需要智能的終端才能很好的顯示;
2、表現和結構混亂,不利于開發和維護;
3、不能使用更多的網絡設備,比如手機、PDA等;
因此HTML需要發展才能解決這個問題,于是W3C又制定了XHTML,XHTML是HTML向XML 過度的一個橋梁。而xml是web發展的趨勢。
上述就是小編為大家分享的JavaScript中document.write與document.writeln有什么區別了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。