Javascript 从外部脚本登录后调用VueJS组件

Javascript 从外部脚本登录后调用VueJS组件,javascript,function,vue.js,methods,callback,Javascript,Function,Vue.js,Methods,Callback,我有一个VueJS程序,我想在其中提供登录。因此,该登录在一个或多个平台上使用,通过外部服务器加载(请参阅:mounted)。它被加载,将元素放入mainlogin div,创建一个登录视图,当用户单击login时,它向另一个服务器执行一个http登录请求。登录成功后,无论登录是否成功,外部脚本都会调用done(结果)或error(结果) 但是现在,当然,我如何才能回到从那里调用Vue的东西?我不能这样做。$router.push(“/coolPath”)或调用loggedIn之类的已定义方法来

我有一个VueJS程序,我想在其中提供登录。因此,该登录在一个或多个平台上使用,通过外部服务器加载(请参阅:mounted)。它被加载,将元素放入mainlogin div,创建一个登录视图,当用户单击login时,它向另一个服务器执行一个http登录请求。登录成功后,无论登录是否成功,外部脚本都会调用done(结果)或error(结果)

但是现在,当然,我如何才能回到从那里调用Vue的东西?我不能这样做。$router.push(“/coolPath”)或调用loggedIn之类的已定义方法来敬酒或其他什么。。。这是如何实现的

<template>
  <div id="main">

    <div id="mainlogin"></div>

    <script type="application/javascript">
      function done(result){
        console.log(result);

        loggedIn(result, true)
      }
      function error(result) {
        console.log(result)

        loggedIn(result, false)
      }

    </script>
  </div>
</template>


<script>
const Toast = require("@/toast/toast")

export default {
  name: "Login",
  components: {},

  data() {
    return {
      isAuthenticated: false
    }
  },
  beforeMount() {
    let loginScript = document.createElement('script')
    loginScript .setAttribute('src', 'http://**.***.***.***/index_krass.js')
    document.body.appendChild(loginScript )
  },
  methods: {
    loggedIn: function (result, success){
      Toast.toast(result.message, success)
    }
  }
}
</script>

<style>
...
</style>

功能完成(结果){
控制台日志(结果);
loggedIn(结果,真)
}
函数错误(结果){
console.log(结果)
loggedIn(结果,假)
}
常量Toast=require(“@/Toast/Toast”)
导出默认值{
名称:“登录”,
组件:{},
数据(){
返回{
I验证:错误
}
},
beforeMount(){
让loginScript=document.createElement('script')
loginScript.setAttribute('src','http://**.**.**.**/index_krass.js')
document.body.appendChild(loginScript)
},
方法:{
loggedIn:功能(结果、成功){
Toast.Toast(result.message,success)
}
}
}
...
错误总是“this.”未定义或loggedIn(…)未定义。。。 可能是某些竞争条件,需要首先加载VueJS,或者以其他方式加载?

而不是模板中的
块,只需在
窗口中设置全局函数以捕获Vue实例上下文:

导出默认值{
beforeMount(){
window.done=result=>this.loggedIn(result,true)
window.error=result=>this.loggedIn(result,false)
让loginScript=document.createElement(“脚本”)
loginScript.setAttribute(“src”、“../index_krass.js”)
document.body.appendChild(loginScript)
},
销毁(){
window.done=window.error=未定义
},
}