我对一件事很好奇。我正在 <head>
中加载脚本以下方式:
<script type="text/javascript">
var domain = "http://example.com";
var script = document.createElement("script");
script.onload = function() {
Lib.init(domain);
Lib.watchAll();
};
script.src = domain + "/dist/sdk.js";
script.async = true;
document.head.appendChild(script);
</script>
我想问一件事 - 我有 window.addEventListener("load", function() {console.log("loaded");});
里面Lib.watchAll();
但它永远不会被调用。有人可以解释一下为什么吗?
最佳答案
您的 JavaScript 中有 2 个缺陷。
No.1 当您的元素 onload
被触发时,窗口很可能已经被加载,因此您将无法捕获该事件。
No.2 您不能向动态创建的元素添加 onload
监听器。它永远不会着火。你想要做的是使用 MutationObserver
或收听DOMNodeInserted
事件(请记住,后者已被弃用,因此不鼓励)。
关于javascript - 窗口 "load"addEventListener 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55889129/