立即执行动态加载的JS脚本

时间:2018-08-22 12:04:19

标签: javascript html dynamic-script-loading

我在文档顶部的顶部动态加载脚本:

PDOException with message 'SQLSTATE[HY000] [1049] Unknown database [your_db]

main.js的内容:

<script>
var script = document.createElement("script");
script.setAttribute("src", "mydomain.com/main.js");
var head = document.head;
head.insertBefore(script, head.firstChild);
</script>

但是,页面在输出console.log('test'); 之前已完全加载。在脚本最终执行之前,我还可以在网络面板中看到所有加载的图像。

如何将脚本插入文档后立即加载并执行?

2 个答案:

答案 0 :(得分:1)

将此script标签移动到html的开头。那么它应该向您保证脚本将在呈现任何主体之前执行。您也可以将此脚本添加到body标记的开头。

答案 1 :(得分:1)

我自己找到了解决方案。 Dynamically inserted scripts are treated as async by default。将其设置为async=false可以解决此问题:

<script>
var script = document.createElement("script");
script.setAttribute("src", "mydomain.com/main.js");
script.setAttribute("async", "false");
var head = document.head;
head.insertBefore(script, head.firstChild);
</script>