Skip to content

简单实现异步加载 JavaScript

仅作为实用代码片段记录

javascript
/**
 * 异步加载 JS 函数
 * 实现思想:动态创建 script 标签,插入到文档中,然后执行 callback 函数
 * url 为请求的 JS 文件的地址,callback 为请求成功时的回调函数
 */
function loadScript(url, callback) {
  var script = document.createElement("script");
  script.type = "text/javascript";
  // 判断外部的 JS 文件是否加载完成(此处需要解决浏览器的兼容问题)
  if (script.readyState) {
    script.onreadystatechange = function () {
      if (script.readyState == "loaded" || script.readyState == "complete") {
        script.onreadystatechange = null;
        callback();
      }
    };
  } else {
    script.onload = function () {
      callback();
    };
  }
  script.src = url;
  document.body.appendChild(script);
}
/**
 * 异步加载 JS 函数
 * 实现思想:动态创建 script 标签,插入到文档中,然后执行 callback 函数
 * url 为请求的 JS 文件的地址,callback 为请求成功时的回调函数
 */
function loadScript(url, callback) {
  var script = document.createElement("script");
  script.type = "text/javascript";
  // 判断外部的 JS 文件是否加载完成(此处需要解决浏览器的兼容问题)
  if (script.readyState) {
    script.onreadystatechange = function () {
      if (script.readyState == "loaded" || script.readyState == "complete") {
        script.onreadystatechange = null;
        callback();
      }
    };
  } else {
    script.onload = function () {
      callback();
    };
  }
  script.src = url;
  document.body.appendChild(script);
}

最后编辑时间:

Version 4.0 (framework-1.0.0-rc.20)