首页 > 解决方案 > 在电子浏览器中打开 _blank 链接

问题描述

我正在用 Electron 创建一个网络浏览器(请不要回答那是“毫无意义”、“不聪明”等)。当我的用户导航到具有该_blank属性的链接时,我希望打开一个新的 Electron Web 浏览器窗口。或者,作为第二选择,在其默认 Web 浏览器(例如 Chrome、Edge、Opera 等)中打开 URL。

我查看了其他几个 StackOverflow 问题,但每次都运气为零。

标签: javascriptnode.jselectron

解决方案


   const { app, BrowserWindow, shell } = require("electron"); 
   ...
   mainWindow.webContents.on("new-window", (_, url) => {
        _.preventDefault();
        const protocol = require("url").parse(url).protocol;
        if (protocol === "http:" || protocol === "https:") {
            shell.openExternal(url);
        }
    });

每当用户尝试在您的渲染器上打开 URL 时,此事件侦听器将触发回调。此回调将在默认浏览器上打开您的目标 URL。

关于您的其他方法,我建议不要打开新的电子浏览器实例来访问目标 URL。这将是大量资源使用的原因。


推荐阅读