Question

Je développe un addon pour Firefox. Après l'avoir proposé à une publication publique sur le site des addons pour Firefox, le réviseur m'a demandé de placer toute ma fonction dans un nom d'espace ou de package.

Jusqu'à présent, j'ai bouclé toutes mes fonctions sauf "jQuery". fonction:

myaddonname = {
    initialize: function() {
        var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);

        if (document.getElementById("contentAreaContextMenu") != null) {
            document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", this.onContextMenuPopup(), false);
        }

        jQuery.noConflict();
    },

        .
        .
        .
        .
}

jQuery.noConflict et quelques autres appels Ajax de jQuery sont toujours déballés, y a-t-il un moyen de le faire?

Était-ce utile?

La solution

Vous pouvez envelopper votre code complémentaire dans une fonction anonyme, recevoir et stocker sur cette étendue l'objet jQuery:

(function ($) {
  // $ is available inside this scope

  window.myaddonname = { // global add-on namespace
    initialize: function() {
      //...
    }
    //...
  };
})(jQuery.noConflict()); // execute and pass a reference to jQuery

Et si vous vous trouvez dans un environnement très conflictuel Très , vous pouvez utiliser jQuery.noConflict (true) (mode extrême), mais utilisez-le avec précaution, avec cette option, l'objet window.jQuery être enregistré, et la plupart des plugins ne fonctionneront pas ...

Autres conseils

Si vous empaquetez jQuery avec votre code, vous pouvez également modifier le code de la bibliothèque pour le coller dans un endroit utile.

Pour le faire correctement , vous devez remplacer tous vos appels jQuery. * par myadoon.jQuery ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top