Подтвердить что ты не робот

Сделать ссылку от Electron в браузере

Есть ли какой-либо (простой/встроенный способ), чтобы открыть новый браузер (я имею в виду браузер ОС по умолчанию) для ссылки с Electron вместо того, чтобы посещать эту ссылку внутри вашего приложения Electron?

4b9b3361

Ответ 1

Вы можете просто использовать:

require("shell").openExternal("http://www.google.com")

Ответ 2

Там намного лучший и простой способ, чем предлагал @Marcelo, но еще проще реализовать для всех ссылок сразу, на что предлагал @zianwar.

const shell = require('electron').shell;

// assuming $ is jQuery
$(document).on('click', 'a[href^="http"]', function(event) {
    event.preventDefault();
    shell.openExternal(this.href);
});

Ответ 3

Чтобы заставить все электронные ссылки открываться снаружи в браузере ОС по умолчанию, вам придется добавить к ним свойство onclick и изменить свойство href, чтобы он не загружал ничего в приложении Electron.

Вы можете использовать что-то вроде этого:

aTags = document.getElementsByTagName("a");
for (var i = 0; i < aTags.length; i++) {
  aTags[i].setAttribute("onclick","require('shell').openExternal('" + aTags[i].href + "')");
  aTags[i].href = "#";
}

Но убедитесь, что весь документ загружен, прежде чем делать, иначе он не будет работать. Более надежная реализация будет выглядеть так:

if (document.readyState != "complete") {
  document.addEventListener('DOMContentLoaded', function() {
    prepareTags()
  }, false);
} else {
  prepareTags();
}

function prepareTags(){
  aTags = document.getElementsByTagName("a");
  for (var i = 0; i < aTags.length; i++) {
    aTags[i].setAttribute("onclick","require('shell').openExternal('" + aTags[i].href + "')");
    aTags[i].href = "#";
  }
  return false;
}

Помните, что если вы загружаете внешние файлы, вам нужно будет пройти через этот процесс, а после они будут полностью загружены.

Ответ 4

Чтобы запустить проект Electron в вашем фактическом браузере (Chrome, Mozilla и т.д.), добавьте его в ваш script внешний script:

aTags = document.getElementsByTagName("a");
for (var i = 0; i < aTags.length; i++) {
     aTags[i].setAttribute("onclick","require('shell').openExternal('" + aTags[i].href + "')");
     aTags[i].href = "#";
}