我在js中有一个window.open弹出窗口 现在我在我的nuxtjs应用程序(vuejs)中是什么 跟随该弹出窗口的URL 当我在URL中获得参数?code =时 从该网址获取数据到我的数据“信息”
后端和前端在其他服务器上
我正在后端使用laravel社交网站,我正在尝试发出此社交api请求
<template>
<section class="container">
<a @click.stop="socialLogin()">google</a>
{{ info }}
</section>
</template>
<script>
export default {
data(){
return{
info: {},
}
},
methods: {
async socialLogin(){
await this.$axios.$get(`http://localhost:8000/api/auth/login/google`)
.then((response) => {
if(response.redirectUrl){
const newWindow = openWindow(response.redirectUrl)
console.log(newWindow);
}
//console.log(response)
})
},
},
}
function openWindow (url, title, options = {}) {
if (typeof url === 'object') {
options = url
url = ''
}
options = { url, title, width: 600, height: 720, ...options }
const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screen.left
const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screen.top
const width = window.innerWidth || document.documentElement.clientWidth || window.screen.width
const height = window.innerHeight || document.documentElement.clientHeight || window.screen.height
options.left = ((width / 2) - (options.width / 2)) + dualScreenLeft
options.top = ((height / 2) - (options.height / 2)) + dualScreenTop
const optionsStr = Object.keys(options).reduce((acc, key) => {
acc.push(`${key}=${options[key]}`)
return acc
}, []).join(',')
const newWindow = window.open(url, title, optionsStr)
if (window.focus) {
newWindow.focus()
}
return newWindow
}
</script>
<style>
</style>
答案 0 :(得分:0)
如果我理解正确,您的函数openWindow
应该是一种可以用socialLogin
在this.openWindow(...)
中调用的方法,例如:
if(response.redirectUrl){
const newWindow = this.openWindow(response.redirectUrl)
console.log(newWindow);
}
然后,在新方法openWindow
中,您可以轻松地通过以下方式设置信息:
this.info = url
。