使HTML链接打开一个新的电子窗口

使HTML链接打开一个新的电子窗口,html,hyperlink,electron,Html,Hyperlink,Electron,我想让一个电子应用程序有不同的链接,可以打开其他窗口,但我不知道该怎么做 从这里关于堆栈溢出的其他问题来看,似乎最常见(或唯一)的方法是 但初始窗口是由以下内容创建的: 函数createWindow(){ const main window=新浏览器窗口({ 宽度:800, 身高:600, 网络首选项:{ preload:path.join(uu dirname,'preload.js') } }) mainWindow.loadFile('index.html') } 我们是否只以这种方

我想让一个电子应用程序有不同的链接,可以打开其他窗口,但我不知道该怎么做

从这里关于堆栈溢出的其他问题来看,似乎最常见(或唯一)的方法是


但初始窗口是由以下内容创建的:

函数createWindow(){
const main window=新浏览器窗口({
宽度:800,
身高:600,
网络首选项:{
preload:path.join(uu dirname,'preload.js')
}
})
mainWindow.loadFile('index.html')
}

我们是否只以这种方式创建初始窗口?或者我们可以为其他窗口(通过链接或其他方式)这样做吗?

可能最好在主窗口的
webPreference
中启用
nativeWindowOpen
,以获得本机Chrome窗口

然后,单击链接将在新窗口中自动打开。您不需要手动创建自己的窗口


也就是说,您可能希望拦截窗口创建并更改有关窗口的各种属性,您可以通过

执行此操作。您可以使用shell命令并打开外部窗口。这是代码


打开链接(事件){
openExternal(event.target.href);

}
shell.openExternal(…)的具体功能是什么?@JacobHornbeck我相信它将使用默认浏览器打开一个窗口。窗口不会是电子window@JacobHornbeck是的,没错还有另一种方法,比如如果你不想在每次点击时打开一个新窗口,那么你可以只创建一个窗口并将其隐藏。因此,当您单击url时,只需加载url并显示窗口。这会为新窗口中的每个链接打开一个新窗口,还是仅为指定目标为“_blank”的链接打开一个新窗口?@JacobHornbeck您需要指定目标为“_blank”好的,谢谢!很高兴知道。我应该把
nativeWindowOpen
放在哪里。。。这是否在我在初始问题中显示的
createWindow()
函数的
webPreferences
中?是不是只有
nativeWindowOpen:true
?@JacobHornbeck是的,两点都正确