动态加载 js

动态加载 js 


const loadScript = (opt = {}) => {
  const defaultOpt = {
    url: "",
    charset: "utf-8",
    complete: () => {},
    fail: () => {},
    ...opt,
  };

  if (!defaultOpt.url) {
    throw new Error("url is a must");
  }
  const script = document.createElement("script");
  const head = document.head;
  const success = () => {
    script.onerror = null;
    script.onload = null;
    if (typeof defaultOpt.complete === "function") {
      defaultOpt.complete();
    }
  };

  const error = function () {
    if (typeof defaultOpt.fail === "function") {
      defaultOpt.fail();
    }
    script.remove();
  };
  script.onload = success;
  script.onerror = error;
  script.onreadystatechange = function () {
    if (script.readyState === "complete") {
      success();
    }
  };
  script.charset = defaultOpt.charset;
  script.url = defaultOpt.url;
  script.type = "text/javascript";
  head.appendChild(script);
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值