检查外部JS文件是否已加载?

时间:2014-03-21 14:56:50

标签: javascript jquery html5

我只需要在页面准备好后检查一些外部JS文件是否已加载。

有可能吗?我想如下。

//get the number of `<script>` elements that have the correct `src` attribute
var len = $('script').filter(function () {
    return ($(this).attr('src') == '<external JS>');
}).length;

//if there are no scripts that match, the load it
if (len === 0) {
    $.getScript('<external JS>');
}

在上面的代码中,我是否需要提供加载外部JS的完整路径而不是'<external JS>'

谢谢!

1 个答案:

答案 0 :(得分:0)

我使用以下JS代码来检查JQuery Script是否完全加载到我的html文件中。

函数有3个参数,脚本URL,成功回调函数,错误回调函数

&#13;
&#13;
//Parameters - script URL, Callback on Complete, Error Callback
function loadScript(sScriptSrc, oCallback, oErrorback) {
  var oScript = document.createElement('script');
  oScript.type = 'text/javascript';
  oScript.src = sScriptSrc;
  // most browsers
  if (oCallback) {
    oScript.addEventListener("load", oCallback);
  }
  if (oErrorback) {
    oScript.addEventListener("error", oErrorback);
  }
  // IE
  oScript.onreadystatechange = function() {
    if (this.readyState == 'complete') {
      if (oCallback) {
        oCallback();
      }
    }
  }
  document.body.appendChild(oScript);
}

//USAGE
var jQscr = 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js';

function successJQLoad() {
  //Successful Loading Callback, Move ahead Code
}

function errorJQLoad() {
  //Error Callback
}

//Call function with appropriate parameters
loadScript(jQscr, successJQLoad, errorJQLoad);
&#13;
&#13;
&#13;