日期:2014-05-16  浏览次数:20518 次

为什么js的document.write 输出内容把网页内容全部冲刷掉了?
为什么js的document.write 输出内容把网页内容全部冲刷掉了?

我的网页内容代码是这样的:
 
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>新建文档</title>
</head>

<body>

网页内容

<script language="JavaScript" src="end.js"></script>

</body>
</html>




end.js 内容是这样的

JScript code

window.onload = function(){    
    document.write("全部执行完了");
}



结果, 页面只显示“全部执行完了” 把网页原有的内容全部冲刷掉了,没了。

而如果
end.js 内容是这样的

JScript code

    document.write("全部执行完了");//直接一句话


不要判断onload,直接输出,那么就不会。

而我的情况是,我希望这个最后的js 不要一开始就输出啊,我希望等window.onload 了再加载哦


怎么办啊

------解决方案--------------------
window.onload之后调用document.write的话会把文档都冲掉的
------解决方案--------------------
如果一定要在onload之后,就不要用document.write, 在一个div中innerHTML你想要的内容,
------解决方案--------------------
用innerHTML的话不会执行里面的script吧?
可以先生成一个节点,然后append到body。

------解决方案--------------------
没问题吧,你是动态加载到后面。你可以先把body清空,然后append,如果之前有那个js还不用加载呢。
不过如果你那个script是写在<script></script>里面的话那就要注意一下了。
要把里面的<script></script>转义,变成<script><\/script>,或者将script标签分开写appendChild("<scr" +"ipt>......</scr" + "ipt>");