在 运行 document.head 时将 ASYNC 添加到 <script> 标签

Add ASYNC to <script> tag on when running document.head

我正在尝试将 注入 一个 JavaScript 文件到 <head></head> 中。 JavaScript文件是异步的,我想在注入.

时将其添加到script标签

这是我目前拥有的:

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

这会注入 JavaScript 文件,但我在第 imported.async = async; 行出错:

uncaught ReferenceError: async is not defined

并且async没有添加到标签中。

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

PS:我不是在寻找 jQuery 答案,只是纯粹的 JavaScript.

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

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

imported.async = true;

请注意 async 属性应为 boolean

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

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

imported.async = !!async;

如果值为 false 或 async 未定义且仅当在 true 上定义和初始化时才为 true,这将赋值为 false。