我对一件事很好奇。我正在通过以下方式在<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();
,但从未被调用。有人可以解释一下为什么吗?
答案 0 :(得分:1)
您的JavaScript有2个缺陷。
No.1当元素onload
被激发时,该窗口很可能已经加载,因此您不会捕获该事件。
No.2您不能将onload
侦听器添加到动态创建的元素中。它永远不会射击。您想要做的是使用MutationObserver
或听DOMNodeInserted
事件(请记住,不建议使用后者,因此不鼓励使用)。