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