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 = "#"; } 
  • ¡Continúa recibiendo desconectado! error
  • ¿Node.js impone un retraso mínimo para setTimeout?
  • cadena node.js múltiples promises (con mongoose)
  • Usando la function como prototipo
  • ¿Cómo resolver el problema de "reconstrucción de nodos-gyp" en Windows 10?
  • Mensaje de error del protractor "indicador de línea de command no compatible" en Chrome?
  • NodeJS 6: ¿Cómo puedo ver el seguimiento completo de la stack de errores?
  • ¿Dónde está Meteor data en Mongo?
  • Archivo IO dentro de CasperJS
  • Obteniendo "no se puede establecer la propiedad Error of undefined" cuando se intenta ejecutar la salida .js de un hello world simple clojurescript
  • Llamada de MongoDB dentro de feathers.js Hook
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.