【问题标题】:JavaScript : When exactly the function assigned to the onload event executes?JavaScript:分配给 onload 事件的函数何时执行?
【发布时间】:2020-01-23 21:41:03
【问题描述】:
function loadScript(src, callback) {
  let script = document.createElement('script');
  script.src = src;

  script.onload = () => callback(script);

  document.head.append(script);
}

loadScript('/my/script.js', function() {
  ...
  ...
});

这里回调函数是在触发onload事件时执行的。但是什么时候会触发onload事件呢?附加脚本时会调用 onload 事件吗?因为我看到我的回调函数在调用 loadScript 后立即执行。

【问题讨论】:

  • " 因为我看到我的回调函数在调用 loadScript 后立即执行。"好的,你预计什么时候会调用它?>
  • 嗯,DOM 的工作原理是我的问题。我们正在动态附加脚本。该脚本可以很容易地存储在某个地方。供以后使用。但是一旦我们追加,脚本将被加载(将调用 onload)并且在 DOM 中完全可用是我的问题吗?

标签: javascript events callback append onload


【解决方案1】:

将脚本源从script.src URL复制到DOM并执行脚本中的代码后执行。

将一些console.log() 语句放入script.js 和回调函数中,您应该会看到一切发生的顺序。

【讨论】:

  • 谢谢巴马尔