2015-07-31 15 views

risposta

22

Si può semplicemente utilizzare:

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

migliore risposta qui: http: // StackOverflow. it/questions/32402327/how-can-i-force-link-esterni-from-browser-window-to-open-in-a-default-browser –

1

Per rendere tutti i link per aprire Electron esternamente nel browser predefinito del sistema operativo si dovrà aggiungere una proprietà onclick a loro e modificare la proprietà href in modo che non si carica qualsiasi cosa nell'app Electron.

si potrebbe usare qualcosa di simile:

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

Ma assicurarsi l'intero documento è stato caricato prima fare questo altrimenti non è andare a lavorare. Un'implementazione più robusta sarebbe simile a questa:

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

Ricordate che se si carica file esterni si dovrà farli passare attraverso questo processo così dopo sono a pieno carico.

15

C'è un modo molto migliore e più semplice di quello proposto da @Marcelo, ma più semplice da implementare per tutti i collegamenti contemporaneamente a ciò che @zianwar ha proposto.

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

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

dovresti spiegare da dove proviene $. La risposta è alquanto incompleta senza di essa. – mateuscb

+1

@mateuscb buon punto. Aggiunto chiarimento. – niieani

0

Per eseguire un progetto Electron nel tuo browser attuale (Chrome, Mozilla, ecc), aggiungere questo al vostro script sono script esterno:

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