Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 立即执行动态加载的JS脚本_Javascript_Html_Dynamic Script Loading - Fatal编程技术网

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

Javascript 立即执行动态加载的JS脚本,javascript,html,dynamic-script-loading,Javascript,Html,Dynamic Script Loading,在文档头部的顶部,我动态加载一个脚本: <script> var script = document.createElement("script"); script.setAttribute("src", "mydomain.com/main.js"); var head = document.head; head.insertBefore(script, head.firstChild); </script> 但是,页面在输出test之前会完全加载。在网络面板中,我还

在文档头部的顶部,我动态加载一个脚本:

<script>
var script = document.createElement("script");
script.setAttribute("src", "mydomain.com/main.js");
var head = document.head;
head.insertBefore(script, head.firstChild);
</script>
但是,页面在输出
test
之前会完全加载。在网络面板中,我还可以看到在脚本最终执行之前加载的所有图像


如何在将脚本插入文档后直接加载和执行脚本?

将此
脚本
标记移动到html的头部。然后,它应该确保脚本在渲染任何实体之前执行。您还可以将此脚本添加到
body
标记的开头

将此
脚本
标记移动到html的头部。然后,它应该确保脚本在渲染任何实体之前执行。您还可以将此脚本添加到
body
标记的开头

我自己找到了解决办法。将其设置为
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>

var script=document.createElement(“脚本”);
setAttribute(“src”、“mydomain.com/main.js”);
setAttribute(“异步”、“假”);
var head=document.head;
head.insertBefore(脚本,head.firstChild);

我自己找到了解决方案。将其设置为
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>

var script=document.createElement(“脚本”);
setAttribute(“src”、“mydomain.com/main.js”);
setAttribute(“异步”、“假”);
var head=document.head;
head.insertBefore(脚本,head.firstChild);

Hi,我的问题是关于动态插入的脚本标记,您发布的问题涉及常规脚本标记。这听起来像是X/Y问题。你到底想在这里做什么?这是一个非常罕见的场景…我正在尝试根据域加载一个外部js文件。例如:domain1.com-->main1.js domain2.com-->main2.js但是我需要尽快执行代码,而不是在渲染之后。这很可能是问题所在:根据,动态插入的脚本默认是异步的。但是,即使我设置
script.async=false,在控制台输出出现之前页面仍将呈现。您好,我的问题是关于动态插入的脚本标记,您发布的问题涉及常规脚本标记。这听起来像是X/Y问题。你到底想在这里做什么?这是一个非常罕见的场景…我正在尝试根据域加载一个外部js文件。例如:domain1.com-->main1.js domain2.com-->main2.js但是我需要尽快执行代码,而不是在渲染之后。这很可能是问题所在:根据,动态插入的脚本默认是异步的。但是,即使我设置
script.async=false,在控制台输出出现之前,页面仍将呈现。您好,感谢您的回复。它已经在头顶上了。但是,只有在呈现完整页面后,它仍然可以进行控制台操作。您好,谢谢您的回复。它已经在头顶上了。但是,只有在呈现完整页面后,它仍然可以进行控制台操作。