检查是否已加载jquery,如果为false则加载它

sev*_*een 116 javascript jquery

有没有人知道如何检查jquery是否已加载(使用javascript)然后加载它,如果它还没有加载.

就像是

if(!jQuery) {
    //load jquery file
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ant 165

也许是这样的:

<script>
if(!window.jQuery)
{
   var script = document.createElement('script');
   script.type = "text/javascript";
   script.src = "path/to/jQuery";
   document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这假定文档具有可以附加脚本元素的`head` (5认同)
  • @Pawel我已经看到一些实现在第一个脚本标记之前/之后插入元素,因为你知道必须有其中一个. (3认同)
  • 所以,总之; 最安全的方法是:(document.getElementsByTagName('head')[0] || document.getElementsByTagName('script')[0]).appependChild(script); 因为至少会有一个脚本标记的实例. (2认同)

Lor*_*ren 105

避免使用"if(!jQuery)",因为IE将返回错误:jQuery是'undefined'

而是使用:if(typeof jQuery =='undefined')

<script type="text/javascript">
if (typeof jQuery == 'undefined') {
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js";
    document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
Run Code Online (Sandbox Code Playgroud)

您还需要在将JQuery附加到标头后检查JQuery是否已加载.否则你将不得不等待window.onload事件,如果页面有图像,则会更慢.这是一个示例脚本,用于检查JQuery文件是否已加载,因为您无法使用$(document).ready(函数...

http://neighborhood.org/core/sample/jquery/append-to-head.htm


mik*_*iii 14

方法1:

if (window.jQuery) {  
    // jQuery is loaded  
} else {
    // jQuery is not loaded
}
Run Code Online (Sandbox Code Playgroud)

方法2:

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded
} else {
    // jQuery is loaded
}
Run Code Online (Sandbox Code Playgroud)

如果没有加载jquery.js文件,我们可以像这样强制加载它:

if (!window.jQuery) {
  var jq = document.createElement('script'); jq.type = 'text/javascript';
  // Path to jquery.js file, eg. Google hosted version
  jq.src = '/path-to-your/jquery.min.js';
  document.getElementsByTagName('head')[0].appendChild(jq);
}
Run Code Online (Sandbox Code Playgroud)


Pra*_*dra 7

试试这个 :

<script>
  window.jQuery || document.write('<script src="js/jquery.min.js"><\/script>')
</script>
Run Code Online (Sandbox Code Playgroud)

这将检查jQuery是否可用,如果不可用,它将从指定的路径动态添加一个.

参考:模拟jQuery的"include_once"

要么

include_once等价于js.参考:https://raw.github.com/kvz/phpjs/master/functions/language/include_once.js

function include_once (filename) {
  // http://kevin.vanzonneveld.net
  // +   original by: Legaev Andrey
  // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   improved by: Michael White (http://getsprink.com)
  // +      input by: Brett Zamir (http://brett-zamir.me)
  // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
  // -    depends on: include
  // %        note 1: Uses global: php_js to keep track of included files (though private static variable in namespaced version)
  // *     example 1: include_once('http://www.phpjs.org/js/phpjs/_supporters/pj_test_supportfile_2.js');
  // *     returns 1: true
  var cur_file = {};
  cur_file[this.window.location.href] = 1;

  // BEGIN STATIC
  try { // We can't try to access on window, since it might not exist in some environments, and if we use "this.window"
    //    we risk adding another copy if different window objects are associated with the namespaced object
    php_js_shared; // Will be private static variable in namespaced version or global in non-namespaced
    //   version since we wish to share this across all instances
  } catch (e) {
    php_js_shared = {};
  }
  // END STATIC
  if (!php_js_shared.includes) {
    php_js_shared.includes = cur_file;
  }
  if (!php_js_shared.includes[filename]) {
    if (this.include(filename)) {
      return true;
    }
  } else {
    return true;
  }
  return false;
}
Run Code Online (Sandbox Code Playgroud)