javascript的document.write问题

部分代码:<scriptlanguage="JavaScript">functionprint(){document.write("<h1>abc!<h1>");}</s... 部分代码:
<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了。
请问这是怎么回事?
怎样让所有内容同时显示在网页中?
谢谢!
展开
 我来答
狠心拒绝
推荐于2017-09-20 · TA获得超过371个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:320万
展开全部
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>
追问
没想到不是简单问题,回头给你加分。

那为什么我在代码里直接这么写

print();

就能输出而且没有清空其他内容呢?
追答
document.write这是一个输出流,

print();
这是在页面没加载完的时候调用,所有和页面的输出是同一个流,
而如果是onclick事件调用的话,之前的输出流已经关闭,document.write会创建一个新的对象来输出,而浏览器容器是同一个,所有会覆盖
天梦半纯唯19
2011-09-16 · TA获得超过1265个赞
知道小有建树答主
回答量:1348
采纳率:0%
帮助的人:1311万
展开全部
先想好在哪构建 可以事先创建一个空DIV并制定ID
<div id="write_target"></div>
最后 JS改为
document.getElementById("write_target").innerHTML("<h1>abc!<h1>");

即可
你分太少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyt0114
2011-09-16 · TA获得超过276个赞
知道答主
回答量:207
采纳率:0%
帮助的人:197万
展开全部
那为什么我在代码里直接这么写
<script language="JavaScript">
print();
</script>
就能输出而且没有清空其他内容呢?
这样再页面加载的时候就调用了,已经写了页面才显示出来,所以会一起显示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mayujuanjinx
2011-09-16
知道答主
回答量:5
采纳率:0%
帮助的人:8407
展开全部
函数调用呀 你触发了onClick事件后,调用了print()方法 所以document.write 就输出了abc!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式