猿问

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

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

要如何优雅的用vue-resource和es6解决这问题


白猪掌柜的
浏览 444回答 1
1回答

呼唤远方

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);};不知道是不是你想要的
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答