javascript - 在电子浏览器中打开 _blank 链接
问题描述
我正在用 Electron 创建一个网络浏览器(请不要回答那是“毫无意义”、“不聪明”等)。当我的用户导航到具有该_blank
属性的链接时,我希望打开一个新的 Electron Web 浏览器窗口。或者,作为第二选择,在其默认 Web 浏览器(例如 Chrome、Edge、Opera 等)中打开 URL。
我查看了其他几个 StackOverflow 问题,但每次都运气为零。
解决方案
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。这将是大量资源使用的原因。
推荐阅读
- c# - 如何等待 form2 完成?
- javascript - 如何让附加到全局的属性与 sinon 一起正确存根?
- javascript - node.js 将嵌套的 json 字符串转换为嵌套的 json 数组
- python - 尝试除了 selenium webdriver 或 requests 脚本
- php - longman 电报机器人处理用户输入
- node.js - 节点快递返回“无法获取”其他解决方案/代码不起作用。上传文件
- kubernetes - 如何使用 nginx 入口控制器只允许每个 pod 一个连接
- c# - 如何在电路板周围创建边框
- ios - 如何修复线程 1:EXC_BAD_ACCESS (code=1, address=0x58) xcode
- mysql - LIKE 但按 id 排除一篇帖子?