Как создать расширение для Firebug - PullRequest
0 голосов
/ 10 июля 2011

Мне нужно расширить firebug, чтобы использовать ссылку, извлеченную с веб-страницы (когда начинается загрузка с любой ссылки на странице), чтобы отправить ее на другой компьютер, где она будет загружена.Я планировал использовать Firebug, чтобы извлечь эту ссылку для меня.Если есть какой-то другой способ, которым я могу получить эту информацию из браузера, даже это будет оценено.

Ответы [ 2 ]

2 голосов
/ 19 ноября 2012

Опечатка в приведенном выше ответе сервисного вызова наблюдателя должна гласить: Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService);

Справочник по использованию службы наблюдателя: https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIObserverService

0 голосов
/ 14 июля 2011

на самом деле, плохая идея использовать события для обнаружения таких вещей, как 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
                }
                }
            }
        }   
    }
...