Injectar JQuery entre domínios
-
19-09-2019 - |
Pergunta
É seguro para injetar o roteiro de JQuery usando JSONP?
A instalação da minha aplicação web é - adicionar um script para o site de um cliente (como o Google Analytics). Eu estava pensando em usar JQuery no site do cliente, como parte do meu próprio script injetado.
Eu estava pensando, se houver algum tipo de risco? As necessidades de aplicação para suportar qualquer tipo de website.
Obrigado Yaron
Solução
É difícil dizer o que você está fazendo com a sua biblioteca, mas parece que você está construindo algum tipo de widget para uso em vários sites.
A partir daqui para baixo foi atualizado após um comentário esclarecedor de @K primeiro-me fez pesquisar exatamente como você poderia incluir duas cópias do jQuery, se necessário:
É geralmente ruim para usar jQuery se você está construindo um widget que vai viver em um site fora seu controle, e será adicionado ao local com um " copiar este código e cole no seu site" tipo de funcionalidade. (claro widgets do jQuery e plugins são abundantes, mas estes são normalmente escolhido e instalado / implementada por desenvolvedores não um genérico "copiar-n-paste" implementação do tipo widget)
Provavelmente a maior razão (depois de perceber que você pode executar duas cópias do jQuery na mesma página) é o aumento de tamanho de arquivo. Se ele está garantido vai depender de suas necessidades e função particulares. Simples pequena Widget = JS retas. website complexo extensão front-end, então provavelmente vale a pena o aumento de tamanho do ficheiro.
Para incluí-lo adequadamente (assim você não correr em conflitos em seu site) seguem um fluxo de trabalho que é algo como isto:
- Adicionar dinamicamente jQuery para sua página usando o Google APIs como mencionado em outras respostas aqui.
- Executar
var mywidget_jQuery = $.noConflict( true );
que irá restaurar o significado original da$
e restaurar o significado original dawindow.jQuery
. - dinamicamente adicionar seu arquivo de script, mas certifique-se de embrulhar a coisa toda em uma auto-executório função anônima como este:
JS
(function($){
... Your code here ...
})(mywidget_jQuery);
Agora, você pode usar com segurança $
dentro de sua função especial e todo o jQuery características que você deseja sem problema.
Crédito extra Você poderia envolver os passos 1 e 2 em uma declaração se que os testes se window.jQuery
é definida e se, teste se jQuery.fn.version
é alta o suficiente para executar seu código. Se qualquer teste falhar, em seguida, executar os passos 1 e 2. Se ele passa, no entanto, var mywidget_jQuery = window.jQuery
seguida, basta executar para que o script que você incluir na etapa 3 ainda será executado.
Outras dicas
Você pode adicionar jQuery para um site simplesmente adicionando um elemento <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.js" />
.
No entanto, certifique-se chamar jQuery.noConflict()
no caso de usar uma palavra-chave $
diferente .
Se você está apenas depois de uma referência para a biblioteca, por que você não apenas link para a API hospedado em Google Code ?