我正在使用Electron我有一个webview,显示一个外部网站,但我无法显示通常由此网站上的链接打开的附加窗口,其中有target = _blank。
<a href="mentions.html" target="_blank">Mentions légales </a>
我试过
webpreferences="nativeWindowOpen=yes" allowpopups
但它没有改变。
答案 0 :(得分:2)
使用webview,您可以非常轻松地在主流程上处理这些内容。
如果需要,还允许您禁用nodeIntegration。
// Listen for web contents being created
app.on('web-contents-created', (e, contents) => {
// Check for a webview
if (contents.getType() == 'webview') {
// Listen for any new window events
contents.on('new-window', (e, url) => {
e.preventDefault()
shell.openExternal(url)
})
}
})
答案 1 :(得分:0)
在深入研究文档后,我编写了这段代码(代码位于渲染器中):
const {BrowserWindow} = require('electron').remote
..........
webview1.addEventListener('new-window', (e) => {
const protocol = require('url').parse(e.url).protocol
if (protocol === 'http:' || protocol === 'https:') {
//shell.openExternal(e.url)
let win = new BrowserWindow({width: 800, height: 600})
win.loadURL(e.url);
}
})
行shell.openExternal(e.url)
在默认浏览器的标签中打开链接的网址。
通过使用新的BrowserWindow,新窗口是Electron Window。