$(window).load()和$(document).ready()函数之间的区别

在jQuery中$(window).load(function() {})$(document).ready(function() {})什么区别?

  • document.ready是一个jQuery事件,它在DOM准备就绪时运行,例如所有的元素都被find​​/使用,但不一定是所有的内容
  • window.onload稍后会触发(或者在最坏/最差的情况下),所以如果您使用的是图片尺寸,那么您通常会想要使用它。
 $(document).ready(function() { // executes when HTML-Document is loaded and DOM is ready alert("document is ready"); }); $(window).load(function() { // executes when complete page is fully loaded, including all frames, objects and images alert("window is loaded"); }); 

区别是:

$(document).ready(function() {是加载DOM时触发的jQuery事件,所以当文档结构准备就绪时会触发它。

$(window).load()事件在整个内容被加载后被触发。

 <html> <head> <script src="jquery-1.9.1.min.js"></script> <script> $( document ).ready(function() { alert( "document loaded" ); }); $( window ).load(function() { alert( "window loaded" ); }); </script> </head> <body> <iframe src="http://stackoverflow.com"></iframe> </body> </html> 

window.load将在所有的iframe内容被加载后被触发

$(document).ready所有的元素都出现在DOM中,但不一定是所有的内容。

 $(document).ready(function() { alert("document is ready"); }); 

window.onload$(window).load()发生在所有的内容资源(图片等)被加载之后。

 $(window).load(function() { alert("window is loaded"); }); 

从jQuery的未来 – 这只是添加load / onload事件窗口和文件。 看一下这个:

window.onload vs document.onload

根据DOM级别2事件,加载事件应该在文档上触发,而不是在窗口上触发。 但是,为了向后兼容,在所有浏览器的窗口上都实现了加载。

值得注意的是,这个函数在1.8中被弃用,并在jquery 3.0中被删除

更多信息: 对象不支持属性或方法'indexOf'

我认为$(window).load事件不支持3.x jquery ..