Pergunta

Estou desenvolvendo um addon Firefox, após a nomeação do addon para lançamento público no Firefox local addons, o revisor pediu-me para envolver toda a minha função dentro de um nome de namespace ou pacote.

Até agora eu envolveu todas as minhas funções, exceto a função "jQuery":

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 e algumas outras chamadas Ajax do jQuery ainda são dobrados, alguma maneira de fazer isso?

Foi útil?

Solução

Você poderia envolver seu add-on código dentro de uma função anônima, recebimento e armazenamento na esse escopo, o objeto jQuery:

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

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

E se você está em um muito ambiente de alto conflito, você poderia usar jQuery.noConflict(true) (modo extremo), mas usá-lo com cuidado, com essa opção o objeto window.jQuery não serão registradas, e a maioria dos plugins não funciona ...

Outras dicas

Se você está empacotando jQuery juntamente com seu código, assim como você pode simplesmente modificar o código da biblioteca para colocá-lo em algum lugar útil.

Para fazê-lo direito , você vai precisar para substituir todo o seu jQuery. * Chamadas com myadoon.jQuery ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top