0

我有一段 JavaScript 代码,将在<body>渲染时异步调用。此外,我还有一个 JavaScript 文件,它将使用这段代码。这段代码和加载文件的脚本是在外部系统中编写的。无法预测何时将这段代码插入到页面中。我无法更改 JS 文件中的代码。

现在,JS 文件包含创建图像的 document.write 方法。但是,不推荐使用这种方法,因为无法预测写入操作何时发生。例如,如果它在 body 渲染完成和 DOM 加载后运行,则页面内容将被完全重写。我想确保不会发生上述最坏的情况。这个怎么做 ?

4

1 回答 1

1

不要以为你可以百分百确定。但是你可以使用document.body.innerHTML而不是document.write

document.write('<img src="1.gif">');

很可能会重置 DOM,尤其是放置在之后的某个地方<body>

document.body.innerHTML+='<img src="1.gif">';

不会,甚至不会放在window.onload函数中。


现在,您说您不能更改 JS 文件中的代码,但您可以更改document.write

document.write = function() {
    document.body.innerHTML+=arguments[0];
}

如果 JSdocument.write像这样调用

document.write('<img src="1.gif">');

然后它现在实际上document.body.innerHTML+=arguments[0];是被调用的,将 附加<img>到正文中。

中提琴,你已经克服了这个问题document.write......

于 2013-10-16T11:01:38.017 回答