2012-03-28 6 views
6

私のff拡張でjquery(uiも同様)を使用しています。 ff 10まですべて正常に動作しています。FF11のjquery UIをロードするとエラーが発生します::「TypeError:aは未定義です」

var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader); 

loader.loadSubScript("chrome://myext/content/js/jquery-1.7.2.js",wnd); 

var jQ = wnd.jQuery.noConflict(true); 
    try { 
      loader.loadSubScript("chrome://myext/content/js/jquery.ui.core.min.js", jQ); 
    } catch (Except){ 
    alert(Except.toString()); 
    } 

FF 11では、このコードは機能しません。 上記のコードに従って、jqueryをロードしてから、jquery UIライブラリをロードしようとしています。 jQueryが読み込まなっているが、それはロードされません「クローム://myext/content/js/jquery.ui.core.min.jsを」とエラーを与える「TypeError例外を:未定義である」

どれでも役立つだろうappriciatedされる。

+2

あなたは、より良いエラーが非縮小さバージョンをロードするのですか?なぜjQueryオブジェクトを呼び出しに渡しているのですか?UIコードを変更する必要がありますか?私は、ラッピング関数呼び出しで使用するjQueryパラメーターをjQにしたいと思っていますが、それが構文であれば驚いています。 'wnd'にロードするとうまくいくのですか? – Rup

+0

いいえwndを使用しても機能しません。 – MKumar

+0

また、拡張でjqueryをロードするための標準的な方法です。 http://forums.mozillazine.org/viewtopic.php?f=19&t=2105087 – MKumar

答えて

2

私は、同様のエラーがあったが、それは私のために働いたこの位置にloadSubScriptを置く:

//load jQuery 

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

if(typeof(jQuery.fn._init) == 'undefined') { jQuery.fn._init = jQuery.fn.init; } 

var $ = function(selector,context){ return new jQuery.fn.init(selector,context||myext.doc); }; 
$.fn = $.prototype = jQuery.fn; 

myext.jQuery = jQuery; 
myext.$ = $; 

loader.loadSubScript("chrome://myext/content/lib/jquery.tablesorter.js",jQuery); 
+0

したがって、* loadSubScript *のDinesh位置が間違っていますか?それがなぜ別の方法でなければならないのですか、どのように変更しますか? – xralf

+0

まあ、それは私にはっきりとは分かりませんが、エラーが発生したとき(「タイプエラー:$は未定義です」)、_loadSubScript_の行は_var jQuery_の行のすぐ下にありました。私は$のローカル定義の後にそれを移動し、それがうまくいった。私は_loadSubScript_がどのように動作するかについて深い知識は持っていませんが、スコープがどのように管理されているのか分かりませんが、$ declarationsの後にその行を置くとプラグインのスコープに$が追加されるようです。多分、私よりも専門家の方がこの面を明確にしてくれるかもしれませんが、私はそれが今働いていると言えるでしょう...そして、Dineshにとっても、異なるプラグインであっても同じであるかもしれません。 – liv913

+0

こんにちは、私はjqueryのUIを試して、それは動作しません...ので、私のソリューションは、この場合は良くありません。 – liv913

関連する問題