我是Firefox附加組件開發新手,並且對附加組件代碼暴露了什麼類型的瀏覽器對象/ API。 我已經搜索並閱讀了很多教程,所有這些都不能回答我的困惑。 例如,我有一些問題。瀏覽器對象/暴露給Firefox附加組件的API
- 如何訪問瀏覽器的onload事件或初始化插件的時間?
- 如何在加載頁面時訪問活動選項卡/窗口的onload事件?
- 我可以使用jQuery來訪問任何選項卡/窗口的DOM。
請提供任何良好的resorce可能是教程,api參考或任何好書。
我是Firefox附加組件開發新手,並且對附加組件代碼暴露了什麼類型的瀏覽器對象/ API。 我已經搜索並閱讀了很多教程,所有這些都不能回答我的困惑。 例如,我有一些問題。瀏覽器對象/暴露給Firefox附加組件的API
請提供任何良好的resorce可能是教程,api參考或任何好書。
這應該回答你的前兩個問題:https://developer.mozilla.org/en/Code_snippets/On_page_load。通常的做法是用一個簡單的XUL覆蓋層來覆蓋瀏覽器窗口,這個覆蓋層只會加載一個腳本(或者也可能是兩個jQuery)。該腳本將一個load
事件處理程序附加到瀏覽器窗口 - 在瀏覽器窗口完成加載之前,您不應該執行任何操作。在您的load
事件偵聽器中,您在瀏覽器中註冊了一個用於DOMContentLoaded
事件的偵聽器,這意味着每次加載頁面時都會收到通知。對於jQuery,最「複雜」的部分是其他擴展也運行在同一個瀏覽器窗口的上下文中。所以你不能用通常的方式使用jQuery - 它會註冊可能與其他擴展變量衝突的全局變量$
。相反,你有涉及到您擴展的名稱一些獨特的名稱封裝擴展的功能在一個對象:
var myExtension = {
$: jQuery.noConflict(true),
init: function() {
..
},
onPageLoad: function(event) {
var doc = event.originalTarget;
var element = this.$("#foo", doc);
...
}
}
window.addEventListener("load", function() { myExtension.init(); }, false);
在這裏,我讓jQuery的$
功能的對象的屬性,而不是一個全局變量。您稍後可以將其應用於特定文檔,只需將該文檔指定爲第二個參數即可。
感謝您的回覆。我會在下次會議上檢查一下,並會更新。 –