不知道這是否是正確的方法,如果這甚至是一個「好」的問題,但我正在加載一個javscript作爲插件樣式體系結構的一部分,並且存在以下問題:可能從javascript文件中提取函數嗎?
如果某個特定節點具有對插件的引用,我想要通過該插件的json描述提供的每個url加載該插件。說明將有類似於下面的東西(或其功能等價):
{
"pluginSrc" : "http://mysite.com/plugins/1204.js",
"configData" :
{
"someData", "someValue",
"someMoreData", "etc"
}
}
當JavaScript的負荷,我將有一個onload處理,將檢查,看是否有函數名稱的窗口對象,如果存在因此,創建該函數的一個新實例並將它傳遞給配置數據(或多或少),這部分工作得很好,只有一些例外。
有時我沒有引用我需要調用的函數的名稱,並且無法從json中獲取它。最理想的是,如果我可以知道在腳本的onload回調中將哪個函數添加到窗口對象並創建該函數的實例。這可能嗎?我只需要擔心現代瀏覽器,尤其是webkit。如果問題不明確,我會很高興澄清,但抱歉,製作小提琴可能會很困難,因爲需要編寫大量代碼才能實現最小范例。
我正想着到目前爲止是創造某種全局變量在加載腳本文件中像
function MediaAnalytics(){};
var LoadedClass = MediaAnalytics;
和腳本加載時剛剛創造LoadedClass的實例,但是這屬於短因爲我不會一直在寫這個插件。
編輯:這些腳本很可能不會來自同一個域。
如果您製作了一個空白的iframe,在那裏加載JS,然後將iframe的'window'中的函數複製到主窗口? (我不知道這是否有效,只是把它扔在那裏) – 2012-03-06 18:42:58
有趣的想法,它可能在很多情況下工作。不幸的是,這個項目通過手機輸出到Android/iPhone,iframe可能會導致我想避免的各種問題。偉大的建議,但! – Shane 2012-03-06 18:57:50