为了账号安全,请及时绑定邮箱和手机立即绑定

es6如何异步加载线上的脚本

es6如何异步加载线上的脚本

白猪掌柜的 2018-09-14 10:09:06
最近在用Vue-cli重构一些东西,有一个数据源是服务器直接吐出js,用类似jsonp的方式在window下添加全局变量,然后再在callback里对这些数据做处理这个js不在我们的管控范围内,就算要求将其接口化,还有很多类似这样的‘动态脚本’存在不可能一日解决jQuery的getscript可以解决这个问题,但项目并没有用到jQuery,于是ES6和vue只能用原生添加script抱歉这种古典主义的做法去异步加载js,这怎么想都有问题要如何优雅的用vue-resource和es6解决这问题
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

function loadScript(url, callback) {

    let head = document.getElementsByTagName('head')[0];

    let script = document.createElement('script');

    script.type = 'text/javascript';

    script.src = url;

    script.onload = script.onreadystatechange = function() {

        if ((!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete')) {

            callback && callback();

            // Handle memory leak in IE

            script.onload = script.onreadystatechange = null;

            if (head && script.parentNode) {

                head.removeChild(script);

            }

        }

    };

    head.insertBefore(script, head.firstChild);

};

不知道是不是你想要的


查看完整回答
反对 回复 2018-10-15
  • 1 回答
  • 0 关注
  • 443 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信