vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue动态引入JS文件

Vue动态引入JS文件实现方式

作者:工頁光軍

这篇文章主要介绍了Vue动态引入JS文件实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

引入前请先

npm install jquery

正式代码

//动态引入JS文件
function loadJavaScript(src, callback) {
        let script_list=$("script[src]").toArray().map(ret=>{
            return ret.src
        })
        if(script_list.indexOf(src)===-1){
            var script = document.createElement('script'),
                head = document.getElementsByTagName('head')[0];
            script.type = 'text/javascript';
            script.charset = 'UTF-8';
            script.src = src;
            if (script.addEventListener) {
                script.addEventListener('load', function () {
                    setTimeout(function () {
                        callback();
                    },500);
                }, false);
            } else if (script.attachEvent) {
                script.attachEvent('onreadystatechange', function () {
                    var target = window.event.srcElement;
                    if (target.readyState == 'loaded') {
                        setTimeout(function () {
                            callback();
                        },500);
                    }
                });
            }
            head.appendChild(script);
        }else {
            callback();
        }
}

不需要引入JQ的

  //动态引入JS文件
  function loadJavaScript(src, callback) {
    let script_list=[]
    document.querySelectorAll("script[src]").forEach(ret=>{  script_list.push(ret.src) })
    if(script_list.indexOf(src)===-1){
      var script = document.createElement('script'),
        head = document.getElementsByTagName('head')[0];
      script.type = 'text/javascript';
      script.charset = 'UTF-8';
      script.src = src;
      if (script.addEventListener) {
        script.addEventListener('load', function () {
          setTimeout(function () {
            callback();
          },500);
        }, false);
      } else if (script.attachEvent) {
        script.attachEvent('onreadystatechange', function () {
          var target = window.event.srcElement;
          if (target.readyState == 'loaded') {
            setTimeout(function () {
              callback();
            },500);
          }
        });
      }
      head.appendChild(script);
    }else {
      callback();
    }
  }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文