Javascript document.write在Firefox中的怪异行为

时间:2010-07-17 11:14:24

标签: javascript dom

当我将以下代码直接写入脚本标记下的html页面时,字符串“test”会附加到我的页面而不替换其余内容(1):

document.write("test");

但是,如果我将相同的代码放入单独的javascript文件中,如(2):

<script src="http://127.0.0.1/whatever.js" type="text/javascript"></script>

突然间,相同的代码重写了整个页面。

有没有办法从远程文件执行document.write()并将结果输入(1)?

感谢您的时间。

3 个答案:

答案 0 :(得分:3)

如果在页面呈现时使用doc.write,它将插入或附加字符串。如果你在渲染之后或者在window.onload之后使用doc.write,它将基本上再次开始渲染过程,并覆盖页面。

我猜你在加载脚本时会遇到异步行为,直到onload之后它才会执行。我无法重现你的问题。

答案 1 :(得分:0)

您可能会在页面顶部包含脚本。它获取document.write()的东西,从而写入文本而不是追加行为。

答案 2 :(得分:0)

更安全的解决方案是在页面上附加一个文档元素 - 应始终有效