1

我怀疑 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 的子项。你能帮我理解我的编码有什么问题吗?

谢谢和最好的问候,

利维奥

4

1 回答 1

0

您应该像这样引用 $ 变量:

$("body",window.content)

此外,我还在我的 firefox 扩展中使用了 jQuery,它可以无缝运行,完全没有问题。

于 2010-09-26T20:09:51.437 回答