javascript - Electron 打开浏览器中的每个链接,而不是 Electron 本身

标签 javascript events electron

我想打开一个外部链接,而不是在 Electron 设备中,而是在浏览器中。因此,我实现了以下代码:

document.addEventListener('click', function(event) {
   if (event.target.tagName === 'A' && event.target.href.startsWith('http')) {
   event.preventDefault();
   shell.openExternal(event.target.href);
 }
});

现在的问题是,我创建的每个链接都在浏览器中打开。
例如
<a href="http://google.com">foo</a> <-需要在浏览器中打开的行为
<a href="#">bar</a> <-不想在浏览器中打开行为

我如何才能在浏览器中打开外部链接?

最佳答案

<a href="#"></a>实际上是href="http://localhost:X000/#"因此if条件始终为true。
以此替换您的代码,它应该可以工作:

    const { app, shell, BrowserWindow } = require("electron");

    // Create the browser window.
    mainWindow = new BrowserWindow({
      width: 1300,
      height: 800,
    });

    // Load your React app or any other HTML which creates your Electron app content
    mainWindow.loadFile("./build/index.html");

    mainWindow.webContents.on("new-window", function(event, url) {
      event.preventDefault();
      // This will open a new Electron window to load the url.
      shell.openExternal(url);
    });

关于javascript - Electron 打开浏览器中的每个链接,而不是 Electron 本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61505222/

相关文章:

javascript - 防止onchange事件进入死循环

java - 如何自动隐藏 GWT MenuBar 子菜单?

javascript - 来自 LOCALHOST 的 Electron GET 请求

javascript - JQuery 从 <li> 获取值

events - kafka 上的无限期日志保留

electron - setSimpleFullScreen导致应用失去对 Electron 的关注?

javascript - 将 electron devtools 中的日志保存到文件中

Javascript正则表达式,循环中的变量带有转义字符

javascript - Web 应用程序中的 Node.js cron 作业

javascript - PHP复制对象数组的一个字段到一个简单的数组