检查是否使用 Javascript 加载了 jquery

IT技术 javascript jquery
2021-01-30 11:48:14

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

有什么不对的

好吧,您正在使用 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");
    }
}
@gilly3:是的,讨厌的范围界定问题。固定的。
2021-03-17 11:48:14
我在与 html 文件相同的目录中有 jquery-1.6.3.min.js 文件。不知道为什么它不加载。
2021-03-22 11:48:14
其实没有。让我改变它并试一试。
2021-03-31 11:48:14
这仍然会在jQuery未定义时抛出错误您需要检查window.jQuery.
2021-04-11 11:48:14
@DmainEvent:它们都在根目录中吗?src有一个领先的/,这意味着它正在寻找根。
2021-04-11 11:48:14

根据链接:

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


希望这涵盖了完成这件事的大多数好方法!!

@JakeN 经过一定时间后,除非编辑帖子,否则无法撤消投票。不过,这篇文章有一个问题:if (jQuery) {如果未加载 jQuery 将在严格模式下抛出错误,因此最后一段代码是一个糟糕的建议。
2021-03-12 11:48:14
if ('undefined' == typeof window.jQuery) {
    // jQuery not present
} else {
    // jQuery present
}

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

例如:

$ === jQuery

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

但是,如果未加载 jQuery,这将引发异常: Uncaught ReferenceError: jQuery is not defined
2021-04-06 11:48:14

只是一个可能真正解决问题的小修改:

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

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