使用jquery 1.3+的Firefox扩展

biz*_*zzy 6 jquery firefox-addon

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

$mb = jQuery.noConflict();
var doc = window.content.document
$mb("body", doc).slideToggle("slow");
Run Code Online (Sandbox Code Playgroud)

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

biz*_*zzy 5

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

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

另一个很棒的技巧是在Firefox扩展程序中包含像jquery"on the fly"的库.只需在您的扩展程序中的某些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());
Run Code Online (Sandbox Code Playgroud)

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