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

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

已解决 悬赏分:30 - 解决时间 2021-11-27 06:43
反对 0举报 0 收藏 0

回答2

最佳
  • @

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

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

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

    支持 0 反对 0 举报
    2021-11-26 07:41
  • @

    script.onload = function() {}

    支持 0 反对 0 举报
    2021-11-26 08:05