0
我在註冊firefox插件中的nsIConsoleListener時遇到了一些麻煩。這裏是我的代碼:在Firefox插件中註冊控制檯服務偵聽器
var conSer = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
var consoleLis = {
observe:function(aMessage){
conSer.unregisterListener(consoleLis);
Components.utils.reportError("observed "+aMessage.message);
},
QueryInterface: function (iid) {
if (!iid.equals(Components.interfaces.nsIConsoleListener) && !iid.equals(Components.interfaces.nsISupports)) {
Components.utils.reportError("NS_ERROR_NO_INTERFACE");
throw Components.results.NS_ERROR_NO_INTERFACE;
}
return this;
}
};
conSer.registerListener(consoleLis);
conSer.logStringMessage('this is a test');
看來,不管我嘗試上述代碼的變化中,總的QueryInterface似乎拋出一個錯誤。我看了一下bugzilla,看看是否有nsIConsoleListener出現的問題,但似乎沒有,所以我不知道爲什麼這不起作用。