我正在尝试检查我的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>
答案 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)
使用其他用户提供的任何代码时,如果要在窗口而不是alert
或console.log
上显示消息,请确保使用javascript而不是jQuery。
并非所有人都希望使用alert
或console.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)