准备跳转页面
const newPage = window.open('http://127.0.0.1:5173/home/contactsModule', '');
判断跳转页面是否关闭
newPage.closed === true 表示关闭
newPage.closed === false 表示未关闭
判断窗口是否被激活
if (newPage && !newPage.closed && newPage.focus) {
} else {
}
切换到跳转页面
newPage.focus();
切换跳转页面后关闭跳转页面
newPage.close();
切换跳转页面后调用主窗口定义方法
window.opener.xxx();
跳转窗口不刷新
window.name = 'dispatchHome';
const windowFeatures = "width=910,height=699,status=no,toolbar=no,menubar=no,titlebar=no,replace=false,";
const tmpWindow = window.open(url, '_blank', windowFeatures);
window.open('', 'dispatchHome');
页面通信方式1-双向通信
const noticeA = new BroadcastChannel('home-task');
noticeA.onmessage = e => {console.log('page1: ', e);}
noticeA.postMessage({name: 'yyh', age: 123});
noticeA.close();
const noticeB = new BroadcastChannel('home-task');
noticeB.onmessage = e => {console.log('page2: ', e);}
noticeB.postMessage({name: 'yyh', age: 123});
bc.close();
页面通信方式2单向通信
window.addEventListener("storage", function (e) {
});
localStorage.setItem('Refresh', Math.random()*10);
页面通信方式3单向通信
newPage.postMessage({name: 'yyh'});
addEventListener('message', function (e) {
console.log('message', e);
});