阻止getElementById过早执行?

时间:2018-08-07 02:10:55

标签: javascript

我有一个init()函数,该函数在document.readyState ==“ complete”时运行,以便任何getElementById调用均有效。现在,我正在动态加载第二个javascript文件。如何确保元素加载之前第二个javascript文件中的任何getElementById调用均不会执行?

2 个答案:

答案 0 :(得分:0)

如果您的脚本声明在HTML之后,那么一切都很好...否则,您可以使用window onload事件

window.addEventListener("load", function(event) {
   var node = document.getElementById('myNode');
});

答案 1 :(得分:0)

document readywindow load之间的唯一区别是window load事件也将等待图像,而文档就绪将仅等待DOM加载,但不包括图像...因此实际上可能更适合使用document ready ...我认为这里的问题更多是在实现细节上...与其像document.onDOMContentLoaded = function()...这样的事件分配函数,不如像{{1 }} 在后一种方式中,您可以添加任意数量的事件侦听器,而在前一种方式中,您只能拥有一个事件侦听器,如果重新分配,则随后将覆盖它们。希望可以使它变得更加清晰