在Firefox扩展中添加带有jQuery的节点

时间:2010-09-19 08:14:59

标签: jquery firefox-addon dom-node

我怀疑jQuery在我的扩展程序中无法正常运行... 我正在使用版本1.3.2,加载了以下行:

var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
              .getService(Components.interfaces.mozIJSSubScriptLoader);
loader.loadSubScript("chrome://myext/content/lib/jquery.js", myext);

我的问题是,当运行以下行时,标记为1的那个行有效,2会引发与jQuery相关的错误错误“L is null”:

jQuery.noConflict();
$ = function(selector,context){ return new jQuery.fn.init(selector,myext.doc); };
$.fn = $.prototype = jQuery.fn;
$().ready(function() {
   $("menuitem#a").attr("label","Value set by jQuery!");             // 1
   $("menupopup#listacorsi").append("<menuitem label='newnode!'/>"); // 2

});

我认为第二行应该很好地将子节点添加到元素#listacorsi。 menuitem #a是#listacorsi的孩子。 你能帮我理解我的编码有什么问题吗?

谢谢和最诚挚的问候,

利维奥

1 个答案:

答案 0 :(得分:0)

您应该像这样引用$ variable:

$("body",window.content)

此外,我还在我的firefox扩展中使用了jQuery,它可以无缝地工作,完全没有任何问题。