2011-08-27 7 views
0

私はいくつかのライブラリを開発し、このバグのあるコードを作成しています:機能のオーバーライド、オンロードの優先順位

//------------------- 
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メッセージが表示されていること、考えました。

しかし、それは事実ではなく、私は火かき棒に何のエラーメッセージもありません。

コンソールでGmaps.map.callback()を実行すると正常に動作します。

callbackが上書きされない理由はありますか?

文脈上、---------のコードがライブラリによって作成されますが、開発者はhtmlの一部の機能を無効にすることができます。

答えて

3

あなたはload_mapオンロードを実行していません。あなたはすぐにここでそれを実行している:

window.onload = load_map(); 

、それはそう何が起こってオンロードされていない、window.onload内側戻し値だ記憶します。その行を次のように変更してください:

window.onload = load_map; 
+0

ありがとうございます:) – apneadiving

関連する問題