在electron 18.1的webview中加载的页面,点击a链接无法跳转,需要添加 allowpopups 属性
而添加了allowpopups 你就会发现,点击 属性target="_blank"的a标签时,会创建一个新的窗口,这不是我们想要的。
在github上查找Issues发现,渲染进程中的webview添加事件new-window监听,捕获到webview内容打开新窗口的事件,然而并不能阻止electron打开一个新的窗口
官方文档给出的是调用 event.preventDefault() 方法,但是新版本的electron 18.1是没有办法在渲染进程中去阻止这个事件,只能放到主线程中去阻止。
在electron的入口文件中添加监听
当app监听到webview的创建,则给他的webContents绑定new-window监听
因为每次打开新窗口都会触发 web-contents-created