setWindowOpenHandler
使用场景
通常应用中可能会嵌入一个web页面,web页面中可能也会有打开新的页面,这个时候我们想要对新页面的打开进行拦截处理,例如:端内直接打开或者是跳转到外部浏览器打开。 示例代码:
mainWindow.webContents.setWindowOpenHandler((details)=>{
console.log('details', details)
return {
action: 'allow',
overrideBrowserWindowOptions: {
fullscreen: true
}
}
})
添加一个回调函数,返回值为:
({action: 'deny'})|({action: 'allow', overrideBrowserWindowOptions?: BrowserWindowConstructorOptions})
{action: 'deny'}取消打开新窗口
mainWindow.webContents.setWindowOpenHandler((details)=>{
console.log('details', details)
// 做一些自定义操作
// 可以直接在此处进行创建 BrowserWindow 打开
return {
action: 'deny'
}
})
{action: 'allow', overrideBrowserWindowOptions?: BrowserWindowConstructorOptions}
允许打开新窗口时,
overrideBrowserWindowOptions参数可以修改打开的窗口属性。