检查是否使用Javascript加载了jquery

时间:2011-09-08 00:15:59

标签: javascript jquery

我正在尝试检查我的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>

10 个答案:

答案 0 :(得分:262)

  

有些不对劲

好吧,您正在使用jQuery来检查jQuery的存在。如果没有加载jQuery,那么$()甚至根本不会运行,并且你的回调将不会执行,除非你正在使用另一个库并且该库碰巧共享相同的$()语法。 / p>

删除$(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 :(得分:35)

根据this链接:

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


还有更多关于链接的评论,例如,

if (typeof jQuery == 'function')
//or
if (typeof $== 'function')



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


希望这包括完成这项工作的所有好方法!!

答案 2 :(得分:19)

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

答案 3 :(得分:9)

只是一个可能实际解决问题的小修改:

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

而不是$(document).Ready(function()使用window.onload = function()

答案 4 :(得分:9)

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

E.g:

AppView<void>

如果它返回$ === jQuery ,则表示已加载。

答案 5 :(得分: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 );
})();

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

答案 6 :(得分:1)

注意:请勿使用jQuery测试您的jQuery

使用其他用户提供的任何代码时,如果要在窗口而不是alertconsole.log上显示消息,请确保使用javascript而不是jQuery。

并非所有人都希望使用alertconsole.log

alert('jquery is working');
console.log('jquery is working');

下面的代码将无法显示该消息
因为我们在else中使用了jquery(如果没有jquery,消息将如何显示在屏幕上)

if ('undefined' == typeof window.jQuery) {
    $('#selector').appendTo('jquery is NOT working');
} else {
    $('#selector').appendTo('jquery is working');
}

改为使用JavaScript

if ('undefined' == typeof window.jQuery) {
    document.getElementById('selector').innerHTML = "jquery is NOT working";
} else {
    document.getElementById('selector').innerHTML = "jquery is working";
}

答案 7 :(得分:0)

您可以检查它是否存在,如果不存在,请动态加载它。

function loadScript(src) {
    return new Promise(function (resolve, reject) {
        var s;
        s = document.createElement('script');
        s.src = src;
        s.onload = resolve;
        s.onerror = reject;
        document.head.appendChild(s);
    });
}



async function load(){
if (!window.jQuery){
    await loadScript(`https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js`);
}

console.log(jQuery);

}

load();

答案 8 :(得分:-1)

You can just type window.jQuery in Console . If it return a function(e,n) ... Then it is confirmed that the jquery is loaded and working successfully.

答案 9 :(得分:-2)

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

output = structure(list(y = structure(c(1470356820, 1440168960, 1379245020, 
1441582800, 1381753740), class = c("POSIXct", "POSIXt"), tzone = ""), 
    Value = c(40, 65, 44, 65, 44)), .Names = c("y", "Value"), row.names = c(NA, 
-5L), class = "data.frame")

enter image description here