有没有人知道自v3.0.5以来可能会有什么变化可以使扩展工作?或者,也许我错过了某个地方的设置?我写了这个附加组件,适用于较新的版本,但我不能让它在较旧的版本中启动。具体来说,我甚至无法使这部分工作(这在我的浏览器overlay.xul中):
<html:script>
<![CDATA[
var Cc = Components.classes;
var Ci = Components.interfaces;
var obSvc = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
gBrowser.consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
gBrowser.log = function(msg){
this.consoleService.logStringMessage(msg);
}
gBrowser.newObj= new MyAddOn();
gBrowser.log("initializing...");
function regListener()
{
obSvc.addObserver(gBrowser.newObj, "http-on-modify-request", false);
}
function unregListener()
{
obSvc.removeObserver(gBrowser.newObj, "http-on-modify-request");
}
window.addEventListener("load", regListener, false);
window.addEventListener("unload", unregListener, false);
]]>
这个应该将监听器附加到新的obj(由链接的.js定义)但是,我甚至没有在控制台中收到“初始化...”消息。有什么想法吗?
答案 0 :(得分:1)
var Cc
))。如果每个人都这样做,没有两个扩展可以一起工作。使用唯一名称将所有代码属性放在您自己的对象上。
gBrowser
可能是导致您遇到特定问题的原因。答案 1 :(得分:0)
看起来gBrowser.log
未定义,或者至少不是函数,因为错误控制台可能会告诉您。我也没听说过。也许它是在Fx 3.5中添加的?