на самом деле, плохая идея использовать события для обнаружения таких вещей, как http-запросы, мощь языка firefox xul дает вам возможность обнаруживать все запросы / ответы браузеров, после чего вы можете решить, какие ссылки вам нужны, из заголовка запроса / ответа:Вы можете использовать "http-наблюдаем" ведьма Firebug использовать для сетевой панели- вот ссылка на «http-наблюдай» в Мозилле MDN [https://developer.mozilla.org/en/Setting_HTTP_request_headers][1]- также вот простой пример для "http-наблюдаем"
// first create observerService component as a property into your extension javascript object
var myExtension = { observerService:Components.classes["@mozilla.org/observerservice;1"].getService(Components.interfaces.nsIObserverService),
init:function(){
// in the init function setup the observe service and set witch javascript object is the listener for http response for example "this"
this.observerService.addObserver(this,"http-on-examine-response", false);
this.observerService.addObserver(this,"http-on-examine-cached-response", false);
},
observe: function(aSubject, aTopic, aData){ // the observe function
if (aTopic == "http-on-examine-response" || aTopic == "http-on-examine-cached-response"){
var httpChannel = aSubject.QueryInterface(Components.interfaces.nsIHttpChannel);
var URI = httpChannel.originalURI.spec;
if (aSubject.loadFlags & httpChannel.LOAD_INITIAL_DOCUMENT_URI){ // this detect if the response is primery request
var contentType = httpChannel.getResponseHeader("content-type"); // check the heder content-type
if (contentType == "what ever you want"){ // you can check if it zip/html/xml ...etc
//do what ever you want
}
}
}
}
}