Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

445
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda