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>

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");
    }
}

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!


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
}

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.


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().


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.


-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.


-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í

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.