新建load.js文件:
export function loadScript(src, callback) {
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 () {
callback();
}, false);
} else if (script.attachEvent) {
script.attachEvent('onreadystatechange', function () {
var target = window.event.srcElement;
if (target.readyState == 'loaded') {
callback();
}
});
}
head.appendChild(script);
}
組件裏:
html:
<div>
<vue-ueditor-wrap v-if="loaing" ref="editor" v-model="val" mode="listener" :config="myConfig"></vue-ueditor-wrap>
<div v-else>
<i class="el-icon-loading"></i>加載中...
</div>
</div>
js:myConfig等其他數據自己寫,主要是mounted裏的加載
export default {
data(){
return {
loading:false,
},
mounted() {
try{
console.log(UE)
this.loaing = true
} catch(e){
// return
let that = this
that.loadFunc('jquery-2.2.3.min.js',()=>{
setTimeout(()=>{
that.loadFunc('ueditor.configMin.js',()=>{
that.loadFunc('ueditor.allMin.js',()=>{
that.loadFunc('dialogs/xiumi-ue-dialog-v5.js',()=>{
console.log('dialogs/xiumi-ue-dialog-v5.js');
that.loaing = true
})
})
})
},1000)
})
}
},
methods:{
loadFunc(src,callback){
loadScript(`${process.env.BASE_URL}static/UE/${src}`,function(){callback()});
},
},
}