最近有个需求,需要公司官网能跳转业务系统,然后业务系统要能再跳回官网。
本来我是直接用
window.open('XXXXXXX','_blank')
由A系统打开B系统,当然B系统打开A系统也是用的此方法.
于是就出现一个问题每次从一个系统跳转另一个系统都会打开一个新的浏览器窗口.
那怎么处理呢?如下
//判断是否由父窗口跳转而来 此功能跨域无法实现 无法跳转
if (window.opener) {
//由父窗口跳转而来
window.open('javascript:;', window.opener.name)
window.opener.focus() //冗余代码兼容浏览器
} else {
//当前为新开窗口
window.open('XXXXXXX','_blank')
}
我先是做了一个判断是当前浏览器窗口是否有父窗口,如果有说明由其他窗口跳转而来,那就使用如上代码,不再打开新的窗口而是focus之前窗口。否则就打开新的窗口。
注意:两个系统不能跨域,跨域则不能实现。
还有上面的window.opener.name必须要添加。
如下,在项目的main.js中
//两个项目都需要加
window.name='XXXXXXXXX'