Comprobando si jquery se carga usando Javascript

176

Estoy intentando comprobar si mi biblioteca Jquery está cargada en mi página HTML. Estoy comprobando si funciona, pero algo no está bien. Esto es lo que tengo:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script type="text/javascript" src="/query-1.6.3.min.js"></script>
        <script type="text/javascript">
          $(document).ready(function(){
             if (jQuery) {  
               // jQuery is loaded  
               alert("Yeah!");
             } else {
               // jQuery is not loaded
               alert("Doesn't Work");
             }
          });
        </script>
SoftwareSavant
fuente
3
No use una R mayúscula en "$ (documento). Listo"
Serigan
77
alert(window.$?1:0)
Thielicious
¿Por qué sigues usando el antiguo estándar xhtml? solo use <!doctype html>en su lugar
Luke the Geek
Si la $(document)función ready se ejecuta, se carga jquery. Por lo tanto, simplemente puede hacer $(document).ready(function(){ alert("Ready!"); }); Granted, esto no mostrará una alerta si jquery no se ejecuta. Pero es suficiente, si simplemente necesita verificar que se ha referido correctamente a la biblioteca jquery.
ToolmakerSteve

Respuestas:

338

algo no está bien

Bueno, está utilizando jQuery para verificar la presencia de jQuery. Si jQuery no está cargado $(), ni siquiera se ejecutará y su devolución de llamada no se ejecutará, a menos que esté usando otra biblioteca y esa biblioteca comparta la misma $()sintaxis.

Elimine su $(document).ready()(use algo como en su window.onloadlugar):

window.onload = function() {
    if (window.jQuery) {  
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}
BoltClock
fuente
1
Esto aún arrojará un error tal como está cuando jQueryno está definido. Necesitas verificarlo window.jQuery.
gilly3
@ gilly3: Sí, molestos problemas de alcance. Fijo.
BoltClock
Tengo el archivo jquery-1.6.3.min.js en el mismo directorio que el archivo html. No estoy seguro de por qué no se carga.
SoftwareSavant
3
@DmainEvent: ¿Están ambos en el directorio raíz? Tu srctiene un liderazgo /, eso significa que está buscando en la raíz.
BoltClock
En realidad no. Déjame cambiar eso y darle una oportunidad.
SoftwareSavant
46

Según este enlace:

if (typeof jQuery == 'undefined') {
    // jQuery IS NOT loaded, do stuff here.
}


hay algunos más en los comentarios del enlace, como

if (typeof jQuery == 'function') {...}

//or

if (typeof $== 'function') {...}

// or

if (jQuery) {
    alert("jquery is loaded");
} else {
    alert("Not loaded");
}


¡Espero que esto cubra la mayoría de las buenas maneras de hacer esto!

Tushar Shukla
fuente
2
@JakeN Después de un cierto período de tiempo, los votos negativos no se pueden deshacer a menos que se edite la publicación. Sin embargo, hay un problema con esta publicación: if (jQuery) {arrojará un error en modo estricto si jQuery no está cargado, por lo que el último fragmento de código es una mala sugerencia.
JLRishe
21
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
} else {
    // jQuery present
}
Niko
fuente
15

Puede hacer esto rápidamente en la pestaña de la consola al inspeccionar su página web.

P.ej:

$ === jQuery

Si regresa truesignifica que está cargado.

Alexein
fuente
Sin embargo, esto generará una excepción si jQuery no está cargado:Uncaught ReferenceError: jQuery is not defined
Batkins
10

Solo una pequeña modificación que podría resolver el problema:

window.onload = function() {
   if (window.jQuery) {  
       // jQuery is loaded  
       alert("Yeah!");
   } else {
    location.reload();
   }
}

En lugar de $(document).Ready(function()usar window.onload = function().

Nika Tsilosani
fuente
1

Si se jQueryestá cargando de forma asíncrona, puede esperar hasta que se defina, verificándolo cada cierto tiempo:

(function() {
    var a = setInterval( function() {
        if ( typeof window.jQuery === 'undefined' ) {
            return;
        }
        clearInterval( a );

        console.log( 'jQuery is loaded' ); // call your function with jQuery instead of this
    }, 500 );
})();

Este método se puede usar para cualquier variable que esté esperando para aparecer.

V.Volkov
fuente
-2

Simplemente puede escribir window.jQueryen la consola. Si devuelve una función (e, n) ... Luego se confirma que el jquery está cargado y funciona correctamente.

Bharadwaj
fuente
-4

Una forma rápida es ejecutar un comando jQuery en la consola del desarrollador. En cualquier navegador, presione F12 e intente acceder a cualquiera de los elementos.

 $("#sideTab2").css("background-color", "yellow");

ingrese la descripción de la imagen aquí

Jajikanth pydimarla
fuente