javascript - 如何检查 Javascript 脚本是否已异步加载 (Async) 或是否存在异步属性?

标签 javascript html dom asynchronous callback

我想知道是否存在一种方便的方法来检查脚本(执行时)是否已被异步加载。

例如 脚本标签:

<script async type="text/javascript" src="js/async.js"></script>

async.js 脚本:

if (_condition_to_check_if_this_has_been_loaded_async) { console.log("async: true") }

最佳答案

除非你想要 IE 兼容性,否则这个问题的正确答案是使用鲜为人知但得到广泛支持的 document.currentScript属性(property)。

此属性返回当前正在执行的脚本的 HTMLScriptElement(如果脚本不在标记中/是回调或类似脚本,则返回任何内容),它会告诉您它是否具有 async/defer 属性等。

MDN 示例甚至引用了这个确切的用例:

if (document.currentScript.async) {
  console.log("Executing asynchronously");
} else {
  console.log("Executing synchronously");
}

关于javascript - 如何检查 Javascript 脚本是否已异步加载 (Async) 或是否存在异步属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38370089/

相关文章:

javascript - 如何在 "onclick"事件期间加载外部 Javascript 文件?

javascript - 突出显示 DOM 范围元素的文本,

javascript - 可以将定义的变量放入数组调用中

javascript - 如何让div移动到隐藏div原来所在的位置?

javascript - 识别外部文件中某些标签之间的字符串 - PHP

java - 如何使用jsoup从整个html页面中删除特定标签

javascript - 无法使用 jQuery 选择器在 IE8 中选择 HTML5 元素的子元素

javascript - 输入类型文件上方不需要的空间

Android HTML5 视频 - 单击播放时有效,但不是 video.play()

java - Java applet HTML 页面发生奇怪的事情