摘要:最近要实现一个效果:后台跳转到前台首页的时候会window.open一个新的浏览器tab标签页,切回后台再次点击跳转到前台该应用的时候,如果浏览器已经打开过这个应用,则浏览器自动跳转到该tab标签,并且不刷新。
let winName = Math.random();
if(window[winName] ){
window[winName].forcus(); // 打开已经打开过的tab
}
window[winName] = window.open(url, name); // 存储到window全局
问题:如果从后台a打开前台b标签,但是b关掉了,a中全局还保存有b的window,再次forcus的时候就会有问题。
新的方案改进版本
实现方案:配合两个事件来实现,onload 和 beforeunload 以及通过postmessage通信来实现。