window.onload和jQuery(document).ready的区别

4
我在想,当我从一个系统切换到另一个系统时,是否会有任何后果。
$(document).ready(function() {...})

to

window.onload = function() {...}

由于我正在制作一个小部件,不想在情况用户已经在他们的应用中包括了jQuery时强制执行其包含,也不想让他们修改小部件代码 -- 因此我动态地确定是否应该包含它。
然而,为了动态包含它,我在 window.onload 之前没有访问 jQuery,这就带来了我的疑虑。 我主要担心这会破坏用户应用程序的功能。 那么... 会吗?
提前感谢。

可能是window.onload vs document.ready的重复问题。 - gion_13
1个回答

2

您的函数实际上会在页面生命周期的不同点触发。onload在所有页面元素都被加载之前的生命周期早期被调用,而就绪事件稍后触发。如果您想在不使用jQuery的情况下连接到事件,也可以轻松地这样做:

document.addEventListener('DOMContentReady', function()
{
     // Stuff
});

哦 :P 好吧,我有一个简单的页面,其中包含 window.addEventListener('DOMContentReady', function() {alert('loaded');});,但仍然没有任何反应。 - Garrett
啊,你在那里使用了 document.onload。之前你给我用的是 window.onload :P 谢谢! - Garrett
你可能需要使用attachEvent - Tejs
你声称“onload在所有页面元素必要加载之前的生命周期早期被调用,而ready事件稍后触发”,但是这个获得了225个赞的答案声称相反(先ready,然后稍后再onload)。https://dev59.com/vXA65IYBdhLWcg3wqQc8#3698214 - AlcubierreDrive
我的答案是不正确的。文档准备就绪事件先被触发,然后才是onload事件。 - Tejs
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接