我有一段JavaScript代码,在呈现<body>
时将异步调用。我还有一个JavaScript文件,它将使用这段代码。这段代码和加载文件的脚本都写在外部系统中。将此代码插入页面时无法预测。我无法更改JS文件中的代码。
现在,JS文件包含document.write方法来创建图像。但是,不建议使用此方法,因为无法预测写入操作何时发生。例如,如果它在正文渲染完成后运行并且在加载DOM之后运行,则页面内容将被完全重写。 我想确保不应该发生上述最糟糕的情况。怎么做?
答案 0 :(得分:1)
不要以为你可以100%肯定。但您可以使用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];
}
如果JS像这样调用document.write
document.write('<img src="1.gif">');
然后现在实际调用document.body.innerHTML+=arguments[0];
,将<img>
追加到正文中。
Viola,你已经克服了document.write
...