Faire un lien depuis Electron ouvert dans le navigateur

Existe-t-il une manière (simple / intégrée) d’ouvrir une nouvelle fenêtre de navigateur (je veux dire navigateur par défaut du système d’exploitation) pour un lien à partir d’Electron au lieu de visiter ce lien dans votre application Electron?

Vous pouvez simplement utiliser:

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

Il existe un moyen bien meilleur et plus simple que celui proposé par @Marcelo, mais plus facile à mettre en œuvre pour tous les liens en même temps vers ce que @zianwar a proposé.

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

REMARQUE: nécessite jQuery.

Pour que tous les liens Electron s’ouvrent de manière externe dans le navigateur de système d’exploitation par défaut, vous devez leur append une propriété onclick et modifier la propriété href afin qu’elle ne charge rien dans l’application Electron.

Vous pouvez utiliser quelque chose comme ceci:

 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 = "#"; } 

Mais assurez-vous que tout le document a été chargé avant de le faire, sinon cela ne fonctionnera pas. Une implémentation plus robuste ressemblerait à ceci:

 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; } 

N'oubliez pas que si vous chargez des fichiers externes, vous devrez également les obliger à suivre ce processus après leur chargement complet.

Pour exécuter un projet Electron dans votre navigateur actuel (Chrome, Mozilla, etc.), ajoutez ceci à votre script: script externe:

 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 = "#"; }