5

このガイドに従って、JQuery を Firefox 拡張機能にロードしようとまし

var Myext = {

  loadJQuery: function(wnd) {
      var loader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
        .getService(Components.interfaces.mozIJSSubScriptLoader);
      loader.loadSubScript("chrome://myext/content/jquery-1.7.2.min.js", wnd);
      var jQuery = wnd.jQuery.noConflict(true);
      try {
        loader.loadSubScript("chrome://myext/content/jquery.hoverIntent.js", jQuery);
      catch (Except) {
        alert(Except.toString());
      }
      return jQuery;
  },

  onLoad: function(e) {
    Myext.jQuery = Myext.loadJQuery(window);
  },

  showDialog: function(e) {
    var $ = Myext.jQuery;
    /* JQuery code */
  }

}

window.addEventListener("load", function(e) { Myext.onLoad(e); }, false);
window.addEventListener("DOMContentLoaded", function(e) { Myext.showDialog(e); }, false);

ローダーの読み込みに問題がありますjquery.hoverIntent.jsここでダウンロードしました

エラーメッセージ:"Type Error: $ is undefined"

4

2 に答える 2

1

使用するには、 jQuery UIライブラリも.dialog()含める必要があります。jQuery ライブラリをロードした直後に次の行を追加します。

loader.loadSubScript("chrome://myext/content/jquery-ui-1.8.18.custom.min.js", wnd);

ここからダウンロードできる最後の jQuery UI ライブラリです。

于 2012-03-30T13:53:57.370 に答える
0

この行:

onLoad: function(e) {
    Myext.jQuery = Myext.loadJQuery(window);
  },

すべきではない?

onLoad: function(e) {
    Myext.jQuery = loadJQuery(window);
  },
于 2012-04-08T08:47:01.717 に答える