我在我的Firefox扩展中使用了jquery-1.2.6,效果很好.几天前我想更新到当前版本的jquery(1.31),但这似乎不再适用了.这是我在我的扩展中包含jquery的技巧:
$mb = jQuery.noConflict(); var doc = window.content.document $mb("body", doc).slideToggle("slow");
我知道在描述该技术的这一页,但是这并不能工作.那么有没有人在Firefox扩展中使用比jquery-1.2.6更新的版本,可以告诉我怎么样?
我找到了解决问题的方法!
我将在此处介绍,以便其他人可以将其作为参考.经过大量搜索和撕裂我的头发后,我在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());
更新:今天发布的1.3.2版本问题似乎已经解决了!