Hacer un enlace desde Electron abierto en el browser

¿Hay alguna (forma simple / integrada) para abrir una nueva window del browser (me refiero al browser del sistema operativo pnetworkingeterminado) para un enlace de Electron en lugar de visitar ese enlace dentro de la aplicación Electron?

4 Solutions collect form web for “Hacer un enlace desde Electron abierto en el browser”

Puedes simplemente usar:

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

Hay una manera mucho mejor y más simple, que lo que @Marcelo propuso, pero más fácil de implementar para todos los enlaces a la vez que lo que @zianwar propuso.

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

Para hacer que todos los enlaces de Electrón se abran externamente en el browser del sistema operativo pnetworkingeterminado, tendrá que agregarles una propiedad onclick y cambiar la propiedad href para que no cargue nada en la aplicación Electron.

Podrías usar algo como esto:

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

Pero asegúrese de que todo el documento se haya cargado antes de hacerlo, de lo contrario, no funcionará. Una implementación más sólida se vería así:

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

Recuerde que si carga files externos tendrá que hacerlos pasar por este process también después de que estén completamente cargados.

Para ejecutar un proyecto de Electrón en su browser actual (Chrome, Mozilla, etc.), agregue esto a su secuencia de commands que son guiones externos:

 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 = "#"; } 
  • Sails.js. ¿Cómo contar usuarios en línea?
  • La installation de Npm no puede encontrar el module 'Sever'
  • authentication con Firebase 3.0 en node.js
  • Lectura-escritura síncrona de Serialport de Node.js
  • nodejs vs node en ubuntu 12.04
  • Qué es el "punto de input" en npm init
  • Secuela el enunciado Where con date
  • Cómo usar el module Node `http` en TypeScript
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.