vue 动态加载远程js文件,全局变量没有生成

在main.js里append一个script,之后直接打印js文件的全局变量,报错未定义,延迟一秒后调用就有,这个时候该怎么判断js文件已加载完成?

最佳答案

html的资源文件都具有onload方法;

onload属性是一个事件处理程序用于处理Window,XMLHttpRequest, 等元素的加载事件,当资源已加载时被触发。

如果需要在Vue上使用,那么需要的操作应该是把空的script加载到 template中,然后需要在这个模板中控制这个script的src属性的内容,同时添加onload属性,这样方法和script资源都可以在vue中来进行控制,比如onload里面触发一个 Promise;这样其他的vue里面可以在这个Promise.then里面完成操作来确保你的脚本被加载;但是而存在加载错误的情况,这就需要兼容下兜底处理,或者重复尝试,但是重试一定要有次数限制,不然死循环就可怕了。