js document.write()使用介紹
在載人頁面后,瀏覽器輸出流自動(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è)最基本的JavaScript命令是document.write。這個(gè)命令簡(jiǎn)單地打印指定的文本內(nèi)容到頁面上。為了逐字打印文本,在打印的文本字符串加上單引號(hào)。
document.write('Hello World!');
上面的js代碼將會(huì)在頁面上顯示出"Hello World!"
你可以使用document.write 打印變量。輸入變量名稱不加上引號(hào),如下:
var mytext = "Hello again";
document.write(mytext);
注意:如果變量名稱加上引號(hào),將會(huì)打印出變量名稱(不會(huì)打印變量值)。你可以使用“+”符號(hào)來連接變量值和文本字符串。
var colour1 = "purple";
var colour2 = "pink";
document.write('<p>colour1: ' + colour1 + '<br>colour2: ' + colour2 + '</p>');
打印結(jié)果如下:
colour1: purple
colour2: pink
document.write也多用于加載js廣告
document.write('<scri'+'pt src="http://www.dbjr.com.cn/ad.js" type="text/javascript"></s'+'cript>');
document.write("<scri"+"pt src='http://www.dbjr.com.cn/ad.js' type='text/javascript'></s"+"cript>");
document.write("<scri"+"pt src=\"http://www.dbjr.com.cn/ad.js\" type=\"text/javascript\"></s"+"cript>");
一般外面用單引號(hào)(雙引號(hào))連接字符,里面的就要用雙信號(hào)(單引號(hào)),這樣就不會(huì)錯(cuò)了。當(dāng)然也可以用轉(zhuǎn)義字符,但這樣以后修改比較麻煩。
document.write這種方式加載的js是異步的
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ru">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<script type="text/javascript">
function load(js){
var s = document.createElement('script');
s.setAttribute('type','text/javascript');
s.setAttribute('src',js);
var head = document.getElementsByTagName('head');
head[0].appendChild(s);
}
function write(js){
document.write('<script type="text/javascript" src="'+js+'" > <\/script>');
}
load("http://www.dbjr.com.cn/js/2011/jquery-1.5.1.min.js");
// write("http://www.dbjr.com.cn/js/2011/jquery-1.5.1.min.js");
</script>
<script>
alert($);
</script>
問: 用createElement("script")的方式加載,調(diào)用函數(shù)就會(huì)報(bào)錯(cuò),用document.write就不報(bào)錯(cuò)?
答案:
對(duì)于動(dòng)態(tài)創(chuàng)建的js 引用而言 ,針對(duì)不同的瀏覽器有不同的反應(yīng)
樓主的這種寫法 對(duì) FF Opera 而言 load 方法是阻塞的 故alert($)能輸出,而對(duì)IE Chrome Safria 而言 是非阻塞的 所以就會(huì)報(bào)錯(cuò)
而document.write的方式,對(duì)所有瀏覽器而言都是阻塞的 即同步的 所以alert($)會(huì)輸出正確結(jié)果
相關(guān)文章
JavaScript trim 去除字符串空格的三種方法(附代碼詳解)
個(gè)人認(rèn)為最好的方法.采用的是正則表達(dá)式,這是最核心的原理.因?yàn)榭崭裼卸喾N形式。2010-05-05通過js簡(jiǎn)單實(shí)現(xiàn)將一個(gè)文本內(nèi)容轉(zhuǎn)譯成加密文本
將文本內(nèi)容轉(zhuǎn)譯成加密文本,在某些情況下還是比較實(shí)用的,下面通過js簡(jiǎn)單實(shí)現(xiàn)下,感興趣的朋友不要錯(cuò)過2013-10-10獲取Javscript執(zhí)行函數(shù)名稱的方法
獲取Javscript執(zhí)行函數(shù)名稱的方法...2006-12-12javascript的trim,ltrim,rtrim自定義函數(shù)
今天用到j(luò)avascript去掉一個(gè)文本框中字符串兩端的空格,開始還以為有trim,ltrim,rtrim函數(shù)(asp中有這三個(gè)函數(shù),弄混了),結(jié)果找半天,沒有找到。最后找到用正則實(shí)現(xiàn)這樣功能的自定義函數(shù)。2008-09-09如何制作浮動(dòng)廣告 JavaScript制作浮動(dòng)廣告代碼
如果有一定的JavaScript基礎(chǔ),制作浮動(dòng)廣告還是比較容易的,利用閑暇時(shí)間簡(jiǎn)單制作了一個(gè),感興趣的朋友可以參考下哦2012-12-12純JavaScript基于notie.js插件實(shí)現(xiàn)消息提示特效
這篇文章主要介紹了純JavaScript基于notie.js插件實(shí)現(xiàn)消息提示特效,可以制作Alert提示框,確認(rèn)框和帶輸入的消息框,感興趣的小伙伴們可以參考一下2016-01-01