Электрон открывает каждую ссылку в браузере, а не сам электрон - PullRequest
0 голосов
/ 29 апреля 2020

Я хотел открыть внешнюю ссылку не в электронном, а в браузере. Поэтому я реализовал этот код:

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> <нежелательное поведение для открытия в браузере </p>

<a href="#">bar</a> <- нежелательное поведение для открытия в браузере </p>

Как мне заставить его просто открыть внешнюю ссылку в браузере?

1 Ответ

0 голосов
/ 29 апреля 2020

<a href="#"></a> на самом деле href="http://localhost:X000/#", поэтому условие if всегда выполняется. Замените свой код этим, и он должен работать:

    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);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...