Partilhar via


Inserção de JavaScript no SharePoint

Você pode usar namespaces para evitar conflitos entre suas personalizações JavaScript e personalizações Padrão do SharePoint JavaScript ou JavaScript implantadas por outros desenvolvedores.

Os exemplos e soluções do OfficeDev/PnP geralmente incluem código JavaScript. Para facilitar a compreensão das técnicas, esses exemplos geralmente são simples e não usam namespaces ao inserir código JavaScript no SharePoint. É importante garantir que você siga as etapas simples descritas neste artigo ao incorporar amostras PnP em suas soluções.

Por que usar namespaces é importante

JavaScript é uma linguagem vagamente tipada. Se você definir uma variável ou função e uma variável ou função com o mesmo nome já existir no contexto atual, o novo valor ou implementação substituirá o existente. Como resultado, ao inserir o código JavaScript no SharePoint, é fácil substituir o código JavaScript padrão do SharePoint ou personalizações implantadas por outros desenvolvedores. Isso pode criar conflitos que podem ser difíceis de identificar e depurar.

Para evitar isso, recomendamos que você use namespaces personalizados para seu código JavaScript.

Como usar namespaces

O exemplo a seguir mostra um padrão simples usado para organizar o código JavaScript em namespaces e classes.

var MySolution = MySolution || {};

MySolution.MyClass1 = (function () {
    // private members
    var privateVar1 = 1;
    var privateVar2 = 2;
    
    function privateFunction1(){
      return "";
    }
    
    return {
        // public interface
        myFunction1: function() {
          return privateVar1;
        },
        myFunction2: function(){
          return privateVar2;
        }
    };
})();

As funções definidas na interface pública podem ser invocadas como:

MySolution.MyClass1.myFunction1();

MySolution.MyClass1.myFunction2();

Como todo o código usa o namespace mySolution personalizado, você pode evitar conflitos de nomenclatura.

Namespaces e MDS (Estratégia mínima de download)

Com o recurso de estratégia de download mínimo habilitado, namespaces globais e variáveis são desmarcados na navegação MDS.
Para manter o Namespace, declare-o como:

    Type.registerNamespace('MySolution');

O Namespace de Tipo é específico do SharePoint para um uso genérico da biblioteca JavaScript:

if (window.hasOwnProperty('Type')) {
    Type.registerNamespace('MySolution');
} else {
    window.MySolution = window.MySolution || {};
}

Namespaces, MDS e CSR (Renderização lateral do cliente)

A RegisterModuleInit função declara um Namespace adequado Type .
Os arquivos anexados ao JSLink não são executados novamente na navegação MDS, usam as funções AsyncDeltaManager para isso.

Veja também: