js切换窗口不刷新只是激活切换窗口

摘要:窗口切换页面不刷新的原理,首先要同源,其次是指定window.name;方法就是调用window.open();

核心方法
/* 1.在Home页面指定 window.name */ 
window.name = 'dispatchHome'; 

/* 2.跳转到一个新页面childPage */ 
const windowFeatures = "width=910,height=699,status=no,toolbar=no,menubar=no,titlebar=no,replace=false,";
const tmpWindow = window.open(url, '_blank', windowFeatures);

/* 3.在childPage中返回 */ 
window.open('', 'dispatchHome'); // 这种应该也可以 window.open('javascript:;', name);
假如有3个页面分别命名window.name
/*页面A*/
window.name = 'pageA';
localStorage.setItem("pageAopen", 'activation');
/*页面B*/
window.name = 'pageB';
localStorage.setItem("pageBopen", 'activation');
/*页面C*/
window.name = 'pageC';
localStorage.setItem("pageCopen", 'activation');
调用window.open(‘javascript:;’, name);激活已存在窗口
// 假如pageA要跳转pageB
let isOpenB = JSON.parse(localStorage.getItem("pageBopen") || null);
if(isOpenB === 'activation'){
  window.open('javascript:;', name);
} else {
  window.open(url, name);
}
页面关闭清除内存(在不同的页面做监听, 如果关闭了就清空掉那个页面的激活状态)
window.addEventListener('beforeunload', () => {
    // localStorage.removeItem('pageAopen');
    // localStorage.removeItem('pageBopen');
    // localStorage.removeItem('pageCopen');
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值