0

当我直接在 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");

希望有人可以帮助...非常感谢...

4

3 回答 3

1

如上所述,当页面已经加载时 document.write 不起作用。我建议尽可能使用 innerHTML 属性。

例子:

var bd = document.getElementsByTagName('body')[0];
bd.innerHTML = "some text";
于 2013-08-16T07:38:47.743 回答
0

document.write 将覆盖它之前的任何其他内容。因此,如果您绝对确定这是您想要做的事情。然后您可能应该等待页面加载,然后触发 document.write。在下面的线路上的东西..

<script>
function my_onload_fn() {
    document.write("test document write");
}
</script>

<body onload="my_onload_fn();">
于 2013-08-16T06:24:12.743 回答
0

实际上,document.write不能影响页面何时加载,但您可以调用document.open()以使其成为可能。

将脚本代码放入标签是同步的,而通过 DOM 操作加载脚本文件是异步的,因此,如果页面很简单,页面可能在运行script时已经加载,如果不调用make则什么也不做。document.write(..)document.write(...)document.open()

alert('activited');
document.open();
document.write('test doc write');
document.close();

这将起作用。并检查此链接以了解更多信息。

于 2013-08-16T06:56:18.623 回答