【发布时间】:2018-03-12 01:24:00
【问题描述】:
window.onload 从我的阅读中听起来它可以与document.onload 松散地互换,但我的经验表明这是不正确的。我继承了一个 JS 脚本,但我不知道如何更正它。我希望 JS 在加载 DOM 后执行,而不是在加载所有资源后执行。我该怎么做?
目前我有:
window.onload = initDropMenu;
我试过了:
document.onload = initDropMenu;
这只会导致菜单无法加载。我还尝试从 JS 中完全删除该行,并让 DOM 通过以下方式执行它:
<body onload="initDropMenu()">
这也导致没有菜单,并且控制台中没有错误。我的JS知识有限,我在这里缺少什么?
【问题讨论】:
-
我从未听说过
document.onload。但是<body onload=...>应该可以工作,它相当于window.onload。 -
<body onload=...>导致没有菜单,并且控制台中没有错误。我也从未听说过document.onload,但我的阅读让我相信它存在,stackoverflow.com/questions/588040/…... 或者我误读了该线程及其用法? -
@Barmar stackoverflow.com/a/588048/4333555 暗示
document.onload可以与window.onload互换使用.. 或者通过我的阅读。不过,@williamflemming 的评论让我找到了一个可行的答案。我对 JS 的了解还不够,但不能说解决方案是否有效。我原以为不需要创建自己的事件侦听器。我目前的解决方案是document.addEventListener("DOMContentLoaded", function(event) {....。 -
我认为这个答案混淆了
document.onload和document.onDOMContentLoaded。请注意,它没有document.onload的链接,就像window.onload一样。
标签: javascript dom document-ready