我試圖創建一個firefox插件,它將在啓動時查找某個頁面,並從中獲取一些信息。我在加載時找不到頁面時遇到問題。這是我到目前爲止有:使用gBrowser和observerService在啓動時查找選項卡
var myfancyaddon = {
onLoad: function() {
var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(function restored() {
observerService.removeObserver(restored, "sessionstore-windows-restored");
var browser = myfancyaddon.findMySite();
if (browser) {
alert("tree falling in the woods"); // THIS LINE NEVER RUNS
browser.contentWindow.addEventListener("load", function tab_loaded(){
browser.contentWindow.removeEventListener("load", tab_loaded(), false);
alert("mysite loaded!");
}, false);
}
}, "sessionstore-windows-restored", false);
},
findMySite: function() {
var browsers = gBrowser.browsers;
for (var i = 0; i < browsers.length; i++) {
var browser = browsers[i];
if (!browser.currentURI.spec) continue;
if (browser.currentURI.spec.match('^https?://(www\.)?mysite\.com/')) return browser;
}
return null;
}
};
window.addEventListener("load", function ff_loaded(){
window.removeEventListener("load", ff_loaded, false); //remove listener, no longer needed
myfancyaddon.onLoad();
},false);
經過一些調查似乎currentURI.spec是「關於:空白」因爲它變成mysite.com前很短的時間。有任何想法嗎?