部分代码:
<script language="JavaScript">
function print() {
document.write("<h1>abc!<h1>");
}
</script>
<div>
hello!
</div>
<form>
<input id="abc" type="button" value="try" size=20 onClick="print()">
</form>
网页本来能显示hello和按钮,点完try按钮后整个屏幕只有abc了。
请问这是怎么回事?
怎样让所有内容同时显示在网页中?
谢谢!
-----------------------------------------------------------------
2011-9-16 10:44
满意回答
document.write("<h1>abc!<h1>");这个是输出到浏览器。会清空之前的。
用DIV的ID去控制,写到DIV里去
function print()
{
var div = document.getElementById("div_id");
div.innerHTML = div.innerHTML+"<h1>abc!<h1>"
}
<div id="div_id">
hello!
</div>
---------------------------------
追问
没想到不是简单问题,回头给你加分。
那为什么我在代码里直接这么写
<script language="JavaScript">
print();
</script>
就能输出而且没有清空其他内容呢?
----------------------------------
回答
document.write这是一个输出流,
<script language="JavaScript">
print();
</script>这是在页面没加载完的时候调用,所有和页面的输出是同一个流,
而如果是onclick事件调用的话,之前的输出流已经关闭,document.write会创建一个新的对象来输出,而浏览器容器是同一个,所有会覆盖。
--------------------------------------------
<script type="text/javascript">
把你每一行代码直接用document.write()就可以了。
document.write(“内容”);
对于src一行使用
document.write('src="' + fileNme + '" width="0" height="0" ');
就可以了。。。。
</script>
---------------------------------------------
功能:打开一个新文档,并擦除当前文档的内容。
语法:document.open(mimetype,replace)
参数:
mimetype:可选。规定正在写的文档的类型。默认值是"text/html"。
replace:可选。当此参数设置后,可引起新文档从父文档继承历史条目。
注1:open()方法将擦除当前HTML文档的内容,开始一个新的文档,新文档用write()方法或writeln()方法编写。
注2:调用open()方法打开一个新文档并且用write()方法设置文档内容后,必须记住用close()方法关闭文档,并迫使其内容显示出来。
注3:属于被覆盖的文档的一部分的脚本或事件句柄不能调用该方法,因为脚本或事件句柄自身也会被覆盖。
功能:close()方法可关闭一个由open()方法打开的输出流,并显示选定的数据。
语法:document.close()
参数:无。
注:该方法将关闭open()方法打开的文档流,并强制地显示出所有缓存的输出内容。如果您使用write()方法动态地输出一个文档,必须记住当你这么做的时候要调用close()方法,以确保所有文档内容都能显示。
一旦调用了close(),就不应该再次调用write(),因为这会隐式地调用open()来擦除当前文档并开始一个新的文档。
<script language="JavaScript">
function print() {
document.write("<h1>abc!<h1>");
}
</script>
<div>
hello!
</div>
<form>
<input id="abc" type="button" value="try" size=20 onClick="print()">
</form>
网页本来能显示hello和按钮,点完try按钮后整个屏幕只有abc了。
请问这是怎么回事?
怎样让所有内容同时显示在网页中?
谢谢!
-----------------------------------------------------------------
2011-9-16 10:44
满意回答
document.write("<h1>abc!<h1>");这个是输出到浏览器。会清空之前的。
用DIV的ID去控制,写到DIV里去
function print()
{
var div = document.getElementById("div_id");
div.innerHTML = div.innerHTML+"<h1>abc!<h1>"
}
<div id="div_id">
hello!
</div>
---------------------------------
追问
没想到不是简单问题,回头给你加分。
那为什么我在代码里直接这么写
<script language="JavaScript">
print();
</script>
就能输出而且没有清空其他内容呢?
----------------------------------
回答
document.write这是一个输出流,
<script language="JavaScript">
print();
</script>这是在页面没加载完的时候调用,所有和页面的输出是同一个流,
而如果是onclick事件调用的话,之前的输出流已经关闭,document.write会创建一个新的对象来输出,而浏览器容器是同一个,所有会覆盖。
--------------------------------------------
<script type="text/javascript">
把你每一行代码直接用document.write()就可以了。
document.write(“内容”);
对于src一行使用
document.write('src="' + fileNme + '" width="0" height="0" ');
就可以了。。。。
</script>
---------------------------------------------
功能:打开一个新文档,并擦除当前文档的内容。
语法:document.open(mimetype,replace)
参数:
mimetype:可选。规定正在写的文档的类型。默认值是"text/html"。
replace:可选。当此参数设置后,可引起新文档从父文档继承历史条目。
注1:open()方法将擦除当前HTML文档的内容,开始一个新的文档,新文档用write()方法或writeln()方法编写。
注2:调用open()方法打开一个新文档并且用write()方法设置文档内容后,必须记住用close()方法关闭文档,并迫使其内容显示出来。
注3:属于被覆盖的文档的一部分的脚本或事件句柄不能调用该方法,因为脚本或事件句柄自身也会被覆盖。
功能:close()方法可关闭一个由open()方法打开的输出流,并显示选定的数据。
语法:document.close()
参数:无。
注:该方法将关闭open()方法打开的文档流,并强制地显示出所有缓存的输出内容。如果您使用write()方法动态地输出一个文档,必须记住当你这么做的时候要调用close()方法,以确保所有文档内容都能显示。
一旦调用了close(),就不应该再次调用write(),因为这会隐式地调用open()来擦除当前文档并开始一个新的文档。