Jquery $(window).load与window.onload之间的区别

我有以下代码:

function initialize() { var mapOptions = { center: new google.maps.LatLng(53.743317, -0.331004), zoom: 12 }; var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); } function loadScript() { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'https://maps.googleapis.com/maps/api/js?key={APIKEY}&sensor=false&callback=initialize'; document.body.appendChild(script); } 

如果我放

 $( window ).load(function() { loadScript; }); 

它不会加载我的地​​图。 谷歌地图中的错误js是Uncaught TypeError: Object # has no method 'Load' 。 但是,如果我使用

 window.onload = loadScript; 

它将加载它很好。 我完全不知道为什么。

 $(window).load(loadScript()); 

也可以工作,只是把它作为一个函数调用它不。 你能告诉我这种行为的原因吗?

您实际上没有在$(window).load()版本中调用loadScript – 您刚刚创建了一个“void”表达式,该表达式计算为对该函数的引用。

要么:

 $(window).load(function() { loadScript(); // NB: parentheses }) 

要么:

 $(window).load(loadScript); 

也就是说,你可能想要$(document).ready()而不是$(window).load()

在您的jquery脚本中,您不调用loadScript方法…使用:

 $( window ).load(function() { loadScript(); }); 

$(窗口).load在所有DOM准备好包括图像时执行。 这意味着如果我们的网页已经完全加载包括图像,那么$(window).load函数将调用。

$(window).load(function(){

  // script 

})

有关$(document).ready vs $(window).load vs window.onload的更多详细信息,请单击

http://www.delhincrjob.com/blog/what-is-document-ready-vs-window-load-vs-window-onload/