Firefox addon can';我无法在v3.0.5中使用ff扩展
有人知道自v3.0.5以来可能发生了什么变化,从而使扩展能够工作吗?或者,也许我错过了某个场景?我编写了这个插件,可以很好地与新版本配合使用,但我无法在旧版本中启动它。具体来说,我甚至无法使此部件正常工作(这在我的浏览器overlay.xul中):Firefox addon can';我无法在v3.0.5中使用ff扩展,firefox-addon,xul,Firefox Addon,Xul,有人知道自v3.0.5以来可能发生了什么变化,从而使扩展能够工作吗?或者,也许我错过了某个场景?我编写了这个插件,可以很好地与新版本配合使用,但我无法在旧版本中启动它。具体来说,我甚至无法使此部件正常工作(这在我的浏览器overlay.xul中): 这应该会将侦听器附加到新的obj(由linked.js定义),但是,我甚至没有在控制台中收到“initialization…”消息。有什么想法吗?错误控制台可能会告诉您,gBrowser.log似乎没有定义,或者至少不是一个函数。我也从来没听说
这应该会将侦听器附加到新的obj(由linked.js定义),但是,我甚至没有在控制台中收到“initialization…”消息。有什么想法吗?错误控制台可能会告诉您,
gBrowser.log
似乎没有定义,或者至少不是一个函数。我也从来没听说过。可能是在FX3.5中添加的
var Cc
)。如果每个人都这样做,没有两个扩展可以一起工作。将所有代码属性放在具有唯一名称的对象上。
- 在加载事件之前访问
可能是导致您出现特定问题的原因gBrowser
不,您只是错过了它:我定义gBrowser.log是为了方便使用。consoleService.logStringMessage(msg)确实是这样。就个人而言,我不会将其附加到gBrowser,我会将其附加到“myExtension”对象(希望您有一个…),但这是一个单独的问题。如果有机会,我会再看一遍……我看你确实有一个,但它在
gBrowser
上。为什么不把它放在窗口上
好的,我来试一试。但我不确定为什么要应用扩展。(正在加载-在加载项列表中)错误控制台中有输出吗?ctrl shift JIf我记得在about:config中正确,如果您必须将property:javascript.options.showincole设置为true才能从控制台看到错误,那么我可能错了。无论如何,如果没有帮助,请执行以下操作:发出警报(“某些消息”);在每一行之后(显然,每次发生时都要更改消息),运行浏览器时收到的最后一条消息就是错误所在(代码中的下一行)。我知道它并不复杂,但对于像这样的小代码,它是最快的调试技术,所以我采纳了你的建议,完全重写了它。我创建了一个基于xpcom的自注册组件,经过测试并正常工作。但是,当我将它放入目标系统时,我没有得到任何响应(我怀疑它会吞下错误,这很好)。复杂的是我不是在目标机器上开发的,所以我不能重新创建问题。我也不清楚为什么不支持FF3-FF4仍处于测试阶段。@最终用户:有Firefox 3.0.x、3.5.x和3.6.x系列,它们有很大的区别。我被你的主题(3.0.5)弄糊涂了,并假设你说的是3.0.x,这是不受支持的。Firefox 3.5计划于2010年8月下线(),3.6.x完全受支持,并且是最新版本。@最终用户:您的新问题完全值得单独提问,而不是评论讨论(提供尽可能多的信息)。
<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);
]]>