javascript - 将脚本写入 DOM 并在 DOM 完成渲染之前让它运行

标签 javascript dom

我的 JavaScript(比如文件 1)需要从我的服务器获取另一个 JS 文件(比如文件 2)并让它在 DOM 渲染完成之前完成执行。文件 2 实际上是一个使用 document.write 的广告脚本(例如 AdSense)。我注意到,如果我通过从文件 1 中创建一个新脚本标记并将其附加到 DOM 的头节点(使用 DOM 操作方法)来获取文件 2,则广告在 firefox 中正确呈现,但在 IE 中不正确

研究表明,以这种方式动态附加到 DOM 的脚本可能会在 DOM 已经呈现后运行,在这种情况下,document.write 会覆盖整个页面。我有哪些选择?我能想到这些....其中哪一个可以保证让文件 2 在渲染完成之前操纵 DOM?

1) Document.write 文件 1 中文件 2 的脚本标签 2)xmlhttp同步调用(不确定这样会不会阻塞DOM渲染)

帮助:)

最佳答案

同步调用会阻止 DOM 渲染。

如果你不想阻塞,那么你可以做一个异步调用。

我会使用 document.write() 因为它会当场执行代码。不是在加载任何内容之后。

关于javascript - 将脚本写入 DOM 并在 DOM 完成渲染之前让它运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2053228/

相关文章:

javascript - jquery.data 返回未定义的结果

javascript - 如何同步 jQuery 对话框以像 Javascript 的 alert()

Java DOM/AST - 为什么 MethodInspiration 是一个表达式?

javascript - 使用通配符 ID 选择 div

java - Jsoup:使用每次连接都会更改的发布 key 登录站点?

javascript - 使用 babel 将异步函数与装饰器绑定(bind)

javascript - Angular 和 Firebase - 如何显示错误消息

javascript - 触发谷歌地图标记点击

javascript - 在 Jquery 中读取 HTML 而不添加到 DOM

Javascript 无法在克隆后取消隐藏元素?