当我在index.html 的body标签中直接添加脚本标记时,如下所示:
<script type="text/javascript" src='**doc_write_in_it.js**'></script>
效果很好,在那里输出“测试文档写入”。
但如果我以另一种方式写 ,如下所示:
<script type="text/javascript">
var model = document.createElement('script');
model.setAttribute('type','text/javascript');
model.setAttribute('src','doc_write_in_it.js');
var bd = document.getElementsByTagName('body')[0];
bd.appendChild(model);
</script>
document.write在由appendChild添加的Javascript文件中变为无效。
doc_write_in_it.js 中的提示会显示,但document.write中的文字不显示。
doc_write_in_it.js 文件是这样的:
alert('activited');
document.write('test doc write");
希望有人能帮忙...... 非常感谢...
答案 0 :(得分:1)
如上所述,当页面已加载时,document.write不起作用。 我建议你尽可能使用innerHTML属性。
示例:
var bd = document.getElementsByTagName('body')[0];
bd.innerHTML = "some text";
答案 1 :(得分:0)
document.write将覆盖之前的任何其他内容。所以,如果你完全确定它是你想要做的。然后你应该等待页面加载,然后激活document.write。在下面的行上的东西..
<script>
function my_onload_fn() {
document.write("test document write");
}
</script>
<body onload="my_onload_fn();">
答案 2 :(得分:0)
实际上,document.write
不会影响何时加载页面,但您可以调用document.open()
使其可用。
将脚本代码放在script
标记中是同步的,而通过DOM操作加载脚本文件是异步的,因此,如果页面很简单,可能在document.write(..)
运行时加载页面并生成{{如果未调用document.write(...)
,则不执行任何操作。
document.open()
这会奏效。 并查看此link了解详情。