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出现的问题,但似乎没有,所以我不知道为什么这不起作用。