我正在使用一些遗留的HTML / JS代码,我需要附加到load事件。
我正在处理的脚本不在<head>
标记内。
在附加在头部以外听的事件时,是否听不到负载事件?
即。 是否有可能页面已加载并忽略我的事件监听器?
在我的测试中,事件监听器被解雇了,但我确保是否一直如此。
顺便说一句。 由于遗留的性质,我需要避免使用jQuery(一个不愉快的一天)。
答案 0 :(得分:2)
在附加头部外部的事件
时,正在侦听加载事件是不可靠的
不,如果你真的在谈论window.onload
,那就不行了。在整个HTML被解析之后(以及在图像和样式表之类的任何外部资源已经完全加载之后),window.onload
在此过程中非常非常晚地发生。应该没问题。
有点偏离主题,但如果你喜欢甚至不使用jQuery,你可以获得更早的可靠调用。只需在结束</body>
标记之前放置它:
<script type='text/javascript'>
myLoadFunction();
</script>
</body>
此时,DOM为reliably available,但调用发生在window.onload
之前的 lot (取决于外部资源的大小,甚至可能是几秒钟之前) )。出于这个原因,谷歌的JavaScript专家反对需要一个jQuery风格的“就绪”事件(参见上面的链接)。一些“不引人注目的JavaScript”人不喜欢它(虽然对我来说它与在script
中添加head
标签没有什么不同,前提是该功能在您的应用中是标准化的;它不像洒{ {1}}遍布整个地方的属性),但听起来这艘船已经在你继承的这段代码的情况下航行了。 ; - )