document.write()⽤法
ocument.write() ⽅法可以⽤在两个⽅⾯:页⾯载⼊过程中⽤实时脚本创建页⾯内容,以及⽤延时脚本创建本窗⼝或新窗⼝的内容。该⽅法需要⼀个字符串参数,它是写到窗⼝或框架中的HTML内容。这些字符串参数可以是变量或值为字符串的表达式,写⼊的内容常常包括HTML 标记语⾔。
记住,在载⼊页⾯后,浏览器输出流⾃动关闭。在此之后,任何⼀个对当前页⾯进⾏操作的document.write()⽅法将打开—个新的输出流,它将清除当前页⾯内容(包括源⽂档的任何变量或值)。因此,假如希望⽤脚本⽣成的HTML替换当前页⾯,就必须把HTML内容连接起来赋给⼀个变量,使⽤⼀个 document.write()⽅法完成写操作。不必清除⽂档并打开⼀个新数据流,⼀个document.write()调⽤就可完成所有的操作。
关于document.write()⽅法还有⼀点要说明的是它的相关⽅法document.close()。脚本向窗⼝(不管是本窗⼝或其他窗⼝)写完内容后,必须关闭输出流。在延时脚本的最后⼀个document.write()⽅法后⾯,必须确保含有document.close()⽅法,不这样做就不能显⽰图像和表单。并且,任何后⾯调⽤的document.write()⽅法只会把内容追加到页⾯后,⽽不会清除现有内容来写⼊新值。为了演⽰ document.write()⽅法,我们提供了同⼀个应⽤程序的两个版本。⼀个向包含脚本的⽂档中写内容,另—个向—个单独的窗⼝写内容。请在⽂本编辑器中键⼈每个⽂档,以.html⽂件扩展名保存,并在浏览器中打开⽂档。
html document是什么
⽰例1创建⼀个按钮,它为⽂档组合新的HTML内容,包括新⽂档标题的HTML标记和<body>标记的颜⾊属性。⽰例中有⼀个读者所不熟悉的操作符+=,它把其右侧的字符串加到其左侧的变量中,这个变量⽤来存放字符串,这个操作符能很⽅便地把⼏个单独的语句组合成—个长字符串。使⽤组合在 newContent变量中的内容,document.write()语句可以把所有新内容写到⽂档中,完全清除⽰例1中的内容。然后需要调⽤ document.close()语句关闭输出流。当载⼊该⽂档并单击按钮时,可以注意到浏览器标题栏中的⽂档标题因此⽽改变。当回到原始⽂档并再次单击该按钮时,可以看到动态写⼊的第⼆个页⾯的载⼊速度甚⾄⽐重载原始⽂档还要快。
⽰例1 在当前窗⼝使⽤document.write()。
<html>
<head>
<title>Writing to Same Doc</title>
<script language="JavaScript">
function reWrite(){
// assemble content for new window
var newContent = "<html><head><title>A New Doc</title></head>"
newContent += "<body bgcolor='aqua'><h1>This document is brand new.</h1>"
newContent += "Click the Back button to see original document."
newContent += "</body></html>"
// write HTML to new window document
document.write(newContent)
document.close() // close layout stream
}
</script>
</head>
<body>
<form>
<input type="button" value="Replace Content" onClick="reWrite()">
</form>
</body>
</html>
⽰例2中,情况有点复杂,因为脚本创建了⼀个⼦窗⼝,整个脚本⽣成的⽂档都将写⼊该窗⼝中。为了使新窗⼝的引⽤在两个函数中保持激活状态,我们将 newWindow变量声明为全局变量。页⾯载⼊时,onLoad事件处理调⽤makeNewWindow()函数,该函数⽣成⼀个空的⼦窗⼝。另外,我们在window.open()⽅法的第三个参数中加⼊⼀个属性,使⼦窗⼝的状态栏可见。
页⾯上的按钮调⽤subWrite()⽅法,它执⾏的第⼀个任务是检查⼦窗⼝的closed属性。假如关闭了引⽤窗⼝,该属性(只在较新的浏览器版本中存在)返回true。如果是这种情况(假如⽤户⼿动关闭窗⼝),该函数再次调⽤makeNewWindow()函数来重新打开那个窗⼝。
窗⼝打开后,新的内容作为字符串变量组合在⼀起。与⽰例1⼀样,⼀次性写⼊内容(虽然对单独的窗
⼝没有必要),接下来调⽤close()⽅法。但是注意⼀个重要的区别:write() 和 close()⽅法都明显地指定了⼦窗⼝。
⽰例2 在另⼀个窗⼝中使⽤document.write()
<html>
<head>
<title>Writing to Subwindow</title>
<script language="JavaScript">
var newWindow
function makeNewWindow(){
newWindow = window.open("","","status,height=200,width=300")
}
function subWrite(){
// make new window if someone has closed it
if(newWindow.closed){
makeNewWindow()
}
// bring subwindow to front
newWindow.focus()
// assemble content for new window
var newContent = "<html><head><title>A New Doc</title></head>"
newContent += "<body bgcolor='coral'><h1>This document is brand new.</h1>"
newContent += "</body></html>"
// write HTML to new window document
newWindow.document.write(newContent)
newWindow.document.close()    // close layout stream
}
</script>
</head>
<body onLoad="makeNewWindow()">
<form>
<input type="button" value="Write to Subwindow" onClick="subWrite()">
</form>
</body>
</html>
/
/以下为⾃⼰关于对 document.write和innerHTML的区别的看法
document.write()主要的作⽤有两个:
1.页⾯载⼊过程中,⽤脚本加⼊新的页⾯内容;
2.⽤延时脚本创建本窗⼝或新窗⼝的内容;
该⽅法需要⼀个字符串参数,既写⼊到窗⼝或框架中的HTML内容。这些字符串可以是变量或值为字符串的表达式。
它的特点是:在载⼊页⾯后,浏览器输出流关闭,⽽在之后,任何⼀个对当前页⾯进⾏操作的documetn.write()⽅法将打开⼀个新的输出流,它将清除当前页⾯内容(包括源⽂档的任何变量或值);与其配对的还有⼀个document.close()⽅法,利⽤它向窗⼝写完内容建瓯,必须关闭输出流。否则,将不能显⽰图像和表单,并且,再次写⼊的内容,则⾃会追加到页⾯后,⽽不会清除页⾯写⼊新值;
⽽innerHTML则是DOM页⾯元素的⼀个属性,代表该元素的html内容。你可以利⽤这个属性,精确到某⼀个对象的元素去对其进⾏内容上的操作;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。