window.open() 函数
window.open(url[, frameName][, features])
参数:
url String
frameName String(可选)
features String(可选)
返回值:
Returns BrowserWindowProxy - 创建一个新窗口,并返回一个 BrowserWindowProxy 类的实例。
注意:
features 字符串遵循标准浏览器的格式,但每个 feature 必须是BrowserWindow 选项中的字段。
features string: zoomFactor, nodeIntegration, preload, javascript, contextIsolation, webviewTag.
window.opener.postMessage(message, targetOrigin)
message String
targetOrigin String
将消息发送给指定来源的父窗口,如果未指定来源则发送给*,即所有窗口。
文档地址:window.open()
用法:
// index.html
<button id="pop">弹出</button>
<button id="close">关闭</button>
...
// 新建pop_win.html
...
<body>
<h2>这是弹出的子窗口</h2>
<button onclick="sendMsgToParent()">向父窗口传递信息</button>
</body>
<script>
function sendMsgToParent() {
window.opener.postMessage('这是来自子窗口的问候1');
window.opener.postMessage({ // 对象形式
type: 1,
message: '这是来自子窗口的问候2'
})
}
</script>
...
// renderer.js
let subWin;
document.getElementById('pop').addEventListener('click', () => {
// window.open('https://www.baidu.com', 'baidu');
subWin = window.open('pop_win.html', 'popWin');
})
window.addEventListener('message', (msg) => {
console.log('接受的消息', msg);
})
BrowserWindowProxy 类
操纵子浏览器窗口
文档地址:BrowserWindowProxy 类
用法:
// win.close()
// 不调用卸载事件,便关闭了子窗口。
document.getElementById('close').addEventListener('click', () => {
subWin.close();
})