函数重写,onload优先级

时间:2011-08-27 18:25:23

标签: javascript

我正在开发一些库并创建了这个错误的代码:

//-------------------
Gmaps = {};
Gmaps.map = new Gmaps4RailsGoogle(); //there exists a default callback function in the created object
function load_map() {
  Gmaps.map.callback();
};
window.onload = load_map();
//--------------------
Gmaps.map.callback = function(){ alert('ok'); }

我想,因为加载了整个页面,callback会被更改并显示alert消息。

但事实并非如此,我在firebug中没有任何错误信息。

如果我在控制台中执行Gmaps.map.callback(),它可以正常工作。

是否有任何原因导致callback未被覆盖?

出于上下文的缘故,---------之间的代码由库创建,但开发人员可以覆盖其html中的某些函数。

1 个答案:

答案 0 :(得分:3)

您没有执行load_map onload。你现在就在这里执行它:

window.onload = load_map();

并将其返回值存储在window.onload内,因此onload不会发生任何事情。只需将该行更改为:

window.onload = load_map;