2013-08-06 81 views
0

我使用jquerys getScript動態加載了一些javascript模塊。我希望能夠調用所有模塊都具有的init方法。模塊是動態加載的,所以我寧願不要硬編碼名稱。有沒有可能在不使用構造函數的情況下調用init?如何在不知道名稱的情況下調用JavaScript匿名對象?

$.getScript("/mydynamicmodule.js", function (data, textStatus, jqxhr) { 

       myModuleName.init()   

      }); 
+0

你的模塊是什麼樣的?你有什麼功能來「啓動」模塊? – putvande

+1

如果你不知道該模塊,你必須提供一個模塊自己註冊的API(例如,通過它的init函數) – Bergi

+0

你不能只是調用模塊代碼中的init方法嗎? 「不知名」的「 – Martin

回答

1

去關一下薩默爾認爲,你已經爲模塊位置的字符串,例如「/mydynamicmoudle.js」。我不知道你是如何得到這個字符串(例如,你從什麼地方加載它,等),但你可以嘗試沿着線的東西:

function openModule(name) { 
    $.getScript("/"+name+".js", function (data, textStatus, jqxhr) { 
     window[name].init(); 
    } 
} 

這裏假設你的模塊有一個別名,可以從你的文件名得到。

0

如果你有全局命名空間(window)你的模塊的名字,那麼你可以試試這個:

window['myModule'].init(); 
+5

」 – Quentin

相關問題