运行document.head时,将ASYNC添加到<script>标记

时间:2016-10-19 17:16:56

标签: javascript asynchronous head appendchild

我正在尝试 JavaScript文件注入&lt; head&gt;&lt; / head&gt; 。 JavaScript文件是异步的,我想在注入时将其添加到 script 标记。

&#xA;&#xA;

这是到目前为止我所拥有的:

&#xA;&#xA;
  var imported = document.createElement('script');&#xA; imported.src ='http:// domain /js/my.js';
imported.setAttribute("type“,”text / javascript“);&#xA; imported.async = async;&#xA; document.head.appendChild(import); &#xA;  
&#xA;&#xA;

这会注入JavaScript文件,但我在行 imported.async = async; :< / p>&#XA;&#XA;

&#XA;

未捕获ReferenceError:未定义async

&#xA;
&#xA;&#xA;

并且 async 未添加到标记。< / p>&#xA;&#xA;

如何将 async 添加到注入的 JavaScript文件中?

&#xA;&#xA ;

PS:我不是在寻找一个jQuery的答案,只有纯粹的JavaScript。

&#xA;

2 个答案:

答案 0 :(得分:1)

async变量未定义,因此imported.async = async;会抛出错误。

您可以var async = true; or false然后imported.async = async;

OR

imported.async = true;

请注意,async属性应为boolean

阅读文档:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script

答案 1 :(得分:0)

我无法评论..因为我没有代表。但我想添加到已接受的答案中,您也可以这样做:

imported.async = !!async;

如果值是false或async未定义且只有在true上定义和初始化时,此属性才会为false。