外部js文件中的javascript document.write

sma*_*jam 9 javascript double-click banner document.write

在大型高负载项目上工作我遇到了问题,已经在论坛和博客上描述了数十亿个主题,但是没有解决方案可以帮助我.这是故事.

我有横幅的HTML代码,我不知道代码是什么.有时它是纯HTML,但有时它的<script>标签里面有document.write,<script>标签上有src,可以双击网络.

所以我们有:script> document.write> script(doubleclick).

正如您所知,doubleclick网络也使用document.write,并且大部分时间他们都提供需要加载一个js文件的flash横幅.

毕竟我们有:script> document.write> script(doubleclick)> document.write> script> ...

当您直接将它放在HTML中时,这很有用.页面渲染1部分,加载banner1,保持渲染页面,加载banner2,完成页面渲染.

但是现在我需要首先渲染页面,并且仅在该负载横幅之后.作为banner使用document.write我需要在window.onload事件之前加载它(注意:在window.onload document.write之后将重写整个文档.)

我做了什么:

在头部我有一个横幅对象(真正的名称空间类型巨大的:)),具有属性范围.

当页面渲染和横幅代码满足时,我将横幅的代码放入范围并放入<div id="bannerPlaceHolder"+id></div>- 所以在这里我需要稍后放置横幅内容

页面呈现和</body>标记之前我把<script>banners.load()</script>banners.load方法为范围数组中的每个项执行此操作:

document.write('<div id="codeHolder'+id+'">');
document.write(bannerCode);
document.write('</div>');
Run Code Online (Sandbox Code Playgroud)

只有在此之后,我才有window.onload()这样做的事件:

采取所有横幅codeHolders和逐个节点将其从codeHolder的节点附加到placeHolder,因此结果我在渲染页面后加载了横幅,横幅位于正确的位置.

一切都很完美,除了IE,它加载任何以异步方式动态放入DOM的js脚本,因此doubleclick脚本中的document.write将节点附加到文档的末尾而不是我的codeHolder节点.像往常一样,它只在IE中.

任何可能知道解决方案的人都会非常感激.

net*_*tos 0

也许你可以使用属性innerHTML: document.getElementById("x").innerHTML=".................";

或者你可以使用 DOM:CreateElement 和 AppendChild