使用jquery 1.3+的Firefox扩展

我在我的Firefox扩展中使用了jquery-1.2.6并且效果很好。 几天前我想更新到当前版本的jquery(1.31),但这似乎不再适用了。 这是我在我的扩展中包含jquery的技巧:

$mb = jQuery.noConflict(); var doc = window.content.document $mb("body", doc).slideToggle("slow"); 

我知道本页描述的技术,但这也不起作用。 那么有没有人在Fi​​refox扩展中使用比jquery-1.2.6更新的版本,可以告诉我怎么样?

我找到了解决问题的方法!

我将在此处介绍,以便其他人可以将此作为参考。 经过大量搜索和撕裂我的头发后,我在jquery bug跟踪器上找到了这个 bug报告。 你可以下载jquery 1.3.1 Revision:6161那里修复问题(官方1.3.1版本是修订版:6158)。

另一个很棒的技巧是在firefox扩展中包含像“在运行中”的jquery这样的库。 只需在您的扩展程序中的某些javascript文件中包含以下内容:

 var jsLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader); jsLoader.loadSubScript("chrome://{appname}/content/jquery-1.3.1_6161.js"); jQuery.noConflict(); //use jquery var doc = window.content.document; alert(jQuery("body", doc).html()); 

更新:今天版本1.3.2发布,问题似乎解决了!

window.content.document之后我没有看到分号,我认为这是必要的。