检查是否使用Javascript加载了jquery


175

我正在尝试检查我的Jquery库是否已加载到我的HTML页面上。我正在检查它是否有效,但是有些不正确。这是我所拥有的:

<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
不要在“ $(document).Ready”中使用大写字母R
Serigan 2012年

7
alert(window.$?1:0)
Thielicious

为什么仍使用旧的xhtml标准?请<!doctype html>改用
卢克极客

Answers:


337

事情不对

好吧,您正在使用jQuery检查jQuery是否存在。如果未加载jQuery,则根本$()不会运行,并且回调也不会执行,除非您正在使用另一个库,并且该库碰巧共享相同的$()语法。

删除您的$(document).ready()(使用类似方法window.onload):

window.onload = function() {
    if (window.jQuery) {  
        // jQuery is loaded  
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}

1
jQuery未定义时,这仍然会引发错误。您需要检查window.jQuery
gilly3 2011年

@ gilly3:是的,讨厌的范围界定问题。固定。
BoltClock

我在与html文件相同的目录中有jquery-1.6.3.min.js文件。不知道为什么它不加载。
SoftwareSavant

3
@DmainEvent:它们都在根目录中吗?您src有领导/,这意味着它正在寻找根源。
BoltClock

其实不行 让我改变一下,试试吧。
SoftwareSavant

46

按照链接:

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


该链接还有很多评论,例如,

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

//or

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

// or

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


希望这涵盖了完成此工作的大多数好方法!


2
@JakeN在一定时间后,除非对帖子进行编辑,否则无法撤消降票。但是,这篇文章有一个问题:if (jQuery) {如果未加载jQuery ,将在严格模式下引发错误,因此最后的代码段是一个不好的建议。
JLRishe

21
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
} else {
    // jQuery present
}

15

检查网页时,可以在控制台选项卡上快速完成此操作。

例如:

$ === jQuery

如果返回,true则表示已加载。


但是,如果未加载jQuery,这将引发异常:Uncaught ReferenceError: jQuery is not defined
Batkins

10

只需稍作修改即可实际解决问题:

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

代替$(document).Ready(function()使用window.onload = function()


1

如果jQuery正在异步加载,则可以等待它定义好,然后每隔一段时间检查一次:

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

此方法可用于任何变量,您正在等待出现。


-2

您只需输入 window.jQueryConsole即可。如果它返回一个函数(e,n)...则确认该jquery已加载并成功工作。


-4

一种快速的方法是在开发人员控制台中运行jQuery命令。在任何浏览器上,按F12并尝试访问任何元素。

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

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.