我有以下代码:
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 #<Object> has no method 'Load'
。但是,如果我使用
window.onload = loadScript;
它将加载它很好。我完全不知道为什么。
$(window).load(loadScript());
同样有效,只需将其作为调用它的函数即可。你能告诉我这种行为的原因吗?
答案 0 :(得分:2)
您实际上未在loadScript
版本中调用$(window).load()
- 您刚刚创建了一个&#34; void&#34;表达式,用于计算对该函数的引用。
要么:
$(window).load(function() {
loadScript(); // NB: parentheses
})
或:
$(window).load(loadScript);
那就是说,你可能想要$(document).ready()
而不是$(window).load()
答案 1 :(得分:0)
你没有调用loadScript方法...... 使用:
$( window ).load(function() {
loadScript();
});
答案 2 :(得分:-1)
当所有DOM都准备好包括图像时,$(window).load执行。这意味着如果我们的网页已经完全加载包括图像,那么$(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/