js动态加载

复制代码
<script type="text/javascript">
  // 动态加载js(顺序执行js)
  function loadScript(url, callback) {
    var script = document.createElement("script")
    script.type = "text/javascript";
    if (script.readyState) { //IE 
      script.onreadystatechange = function () {
        if (script.readyState == "loaded" || script.readyState == "complete") {
          script.onreadystatechange = null;
          callback();
        }
      };
    } else { //Others 
      script.onload = function () {
        callback();
      };
    }
    script.src = url;
    document.querySelectorAll("head")[0].appendChild(script);
  };
  loadScript("file1.js", function () {
    alert("File is loaded!");
  });


  loadScript("file1.js", function () {
    loadScript("file2.js", function () {
      loadScript("file3.js", function () {
        alert("All files are loaded!");
      });
    });
  });

  // 脚本注入
  var xhr = new XMLHttpRequest();
  xhr.open("get", "file1.js", true);
  xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
      if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.text = xhr.responseText;
        document.body.appendChild(script);
      }
    }
  };
  xhr.send(null);
</script>
复制代码

 

posted @   justSmile2  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示