2010-09-19 41 views
1

我懷疑jQuery是不是我的推廣工作確定... 我使用的版本1.3.2,載有下面行:添加與jQuery的節點在Firefox擴展

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提出了misterious錯誤「L爲空」與jQuery的:

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的孩子。 你能幫我理解我的編碼有什麼問題嗎?

感謝和問候,

利維奧

+0

就我個人而言,我只有jQuery和Firefox擴展的問題。 JetPack可能會更好。如果你只做基本的DOM操作,你可以不用jQuery。無論如何,你必須處理Firefox,所以跨瀏覽器問題不是你關心的問題。 – 2010-09-19 08:23:01

+0

當我需要在*可能*已經擁有的站點上使用jQuery時,我首先測試它的存在,然後加載可能較舊的版本。您可以在最新版本中檢查$ .jquery的版本號。就我而言,我還寫了jQuery,我知道它在可能的情況下與jQuery 1.0兼容,以防網站使用非常古老的版本。 – mkoistinen 2010-09-19 08:23:30

+0

很可能相關:http://stackoverflow.com/questions/491490/how-to-use-jquery-in-firefox-extension – MatrixFrog 2010-09-19 16:57:54

回答

0

你應該引用$變量是這樣的:

$("body",window.content) 

此外,我還使用jQuery的在我的Firefox擴展它沒有問題無縫工作在所有。