1
我用一小段代碼創建了一個小小的Firefox擴展。事情是這樣的:Firefox擴展dev:如何設置觀察者一次
var load = function() {
Components.classes['@mozilla.org/observer-service;1'].getService(Components.interfaces.nsIObserverService).addObserver({
observe: function(subject, topic, data) {
var channel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
if(/google\.com/.test(channel.originalURI.host)) {
// magic here
}
}
}, 'http-on-modify-request', false);
};
window.addEventListener('load', load, false);
當我提出這個插件的Firefox插件,我得到以下的回報:
你創建一個HTTP觀察員每一個打開的窗口,同時有 應只是一個實例。
現在我該如何創建一個觀察者實例?
您激勵我使用以前的代碼解決方法來以正確的方式實現觀察者。我已經在我的代碼中測試了這一點,它的工作原理。 –
很好的答案!不要忘記將'var EXPORTED_SYMBOLS = [];'放入你的模塊,否則會拋出錯誤。 – Aley