Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

456
Visualizações
¿Puedo limitar el alcance de la versión de jQuery que necesito usando noConflict() si se desconoce el orden de carga de otros scripts?

Quiero incluir de forma asincrónica una versión específica de jQuery en una página que no controlo (plataforma de comercio electrónico) y solo usarla en mi script. La página puede cargar otras secuencias de comandos, que también pueden querer hacer lo mismo, y no sé el orden en que la página incluye mi secuencia de comandos frente a otras.

Usando jQuery.noConflict([removeAll]) , puedo asegurarme de que:

  1. mi script obtiene la versión correcta de jQuery
  2. ¿No sobrescribo la versión de jQuery para nadie más?

Creo que esta pregunta es diferente de la mayoría de las otras preguntas de versiones múltiples de jQuery porque las personas hacen suposiciones sobre el orden de inclusión del script y no usan la carga asíncrona de jQuery con devoluciones de llamada.

¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Aquí está mi intento de esto (¿alguien podría confirmar que esto está bien?):

miscript.js

 (function() { var myJQuery; function loadjQuery(url, callback) { var runCallbackOnSuccess = function() { if (typeof jQuery != "undefined") { myJQuery = jQuery.noConflict(true); // NOTICE THIS LINE callback(); } }; var scriptTag = document.createElement("script"); scriptTag.setAttribute("src", url); scriptTag.onload = runCallbackOnSuccess; document.getElementsByTagName("head")[0].appendChild(scriptTag); } function doSomethingInMyScript() { myJQuery(document).ready(....); } loadjQuery("https://code.jquery.com/jquery-ABCmin.js", doSomethingInMyScript); })();

otherscript.js (fuera de mi control, pero suponiendo que sea así)

 (function() { function loadjQuery(url, callback) { <same as above, but without the noConflict() call> } function doSomethingInOtherScript() { jQuery(document).ready(....); } loadjQuery("https://code.jquery.com/jquery-XYZmin.js", doSomethingInOtherScript); })();

¿Funcionará este código independientemente de:

  1. si la página incluye myscript.js u otherscript.js primero
  2. si las funciones de devolución de llamada para myscript.js u otherscript.js se ejecutan primero?

Sospecho que debería estar bien siempre que las funciones de devolución de llamada se ejecuten inmediatamente después de que se cargue cada jQuery respectivo, sin posibilidad de que el código del otro script se intercale entre jQuery cargado y la devolución de llamada ejecutada.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda