我正在使用很多外部服務的firefox擴展,我想要在服務器上託管這些外部服務的.js文件,然後加載每個服務在需要時進入擴展。加載外部js來「擴展」firefox擴展
這些外部js文件不是在firefox窗口中執行的「普通js」,它們包含應該在擴展上下文中執行的代碼,例如他們需要使用Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
。
例如:
var myExtensionName = {
init: function() {
},
service1_func: function() {
}
}
我希望能夠從外部文件加載service1_Func,它應該工作一樣,如果它被硬編碼到擴展名的文件。我需要這個的原因是因爲service1_Func需要經常更新,我不想每次更新整個擴展。我知道這可能會造成一些安全風險,但擴展並不是用於分發,但它將在20多臺計算機上使用,因此這將是我維護它的最簡單方法。
我怎麼能做到這一點?
英語不是我的主要語言,所以我希望我解釋清楚自己,如果我需要澄清某些問題,請提出意見和問題。
太棒了,它的工作原理。你知道是否可以從一個js文件一次加載整個擴展,而不是爲每個函數加載一個js? – user979390 2012-01-18 23:39:32
當然,它會 - 編譯你得到的源代碼並立即調用它:'(new Function(request.reponseText))()'。巨大的安全漏洞。 – 2012-01-19 07:39:15
非常感謝,我瞭解安全風險,但承載它的服務器甚至不會在線,只是在同一個網絡上。 – user979390 2012-01-19 11:52:54