2011-12-14 12 views
68

Piszę aplikację za pomocą Node.js.Jak używać nodejs do otwierania domyślnej przeglądarki i nawigacji do określonego adresu URL

Jedną z funkcji, które chcę utworzyć, jest otwarcie domyślnej przeglądarki internetowej i przejście do określonego adresu URL.

Chcę, aby była przenośna, aby działała w systemie Windows/Mac/Linux.

+3

Chyba na to pytanie jest to, czego szukasz: http://stackoverflow.com/questions/7664605/how-would-you-launch-a-browser-from -the-a-node-js-command-line-script – TomTasche

+0

tak, działa na Macu. działa w systemach Windows i Linux? nie miałem pod ręką automatu okiennego –

+1

xdg-open działa w Linuksie :) –

Odpowiedz

1

może trzeba zaimplementować przełącznik wykorzystując wartość ...

require('os').type() 

i wykorzystanie tarło („open”) lub pomiot („xdg-open”) w zależności od platformy?

+3

W oknach próbuję spawnować ("explorer.exe", ['http://www.stackoverflow.com']), Eksplorator Windows wybierze domyślną przeglądarkę, aby otworzyć URL. –

+2

https://github.com/fixedset/open.js zajmuje się problemem x-platform –

+0

@PaulIrish: Niestety, twój link jest już martwy. – mklement0

100

Użyj opn, ponieważ zajmie się problemem z wieloma platformami. Aby zainstalować:

$ npm install opn 

do użycia:

var opn = require('opn'); 

// opens the url in the default browser 
opn('http://sindresorhus.com'); 

// specify the app to open in 
opn('http://sindresorhus.com', {app: 'firefox'}); 
+0

ForbesLindesay wywołanie zwrotne jest wywoływane natychmiast, zamiast gdy okno jest zamknięte. Jakieś pomysły? –

+1

Nie jestem pewien, może warto dać https://github.com/domenic/opener try jako alternatywny moduł z tym samym API. Wygląda na to, że ma właściwy tracker problemów, na którym możesz otworzyć problem. Może to być po prostu dziwne, że przeglądarki zgłaszają proces jako kończący się, więc może nie być łatwy do naprawienia. – ForbesLindesay

+0

To jest świetna rekomendacja, działa bardzo dobrze w przypadku użycia opisanego przez PO. – jbranchaud

1

Najprostszym i neatest sposób IMHO jest przy użyciu pakietu npm nazwie OpenURL. Wykonaj npm install openurl. Można spróbować to bardzo szybko w Nodejs REPL

require("openurl").open("http://stackoverflow.com/questions/8500326/how-to-use-nodejs-to-open-default-browser-and-navigate-to-a-specific-url")

można również wysyłać e-maile z niego, jeśli zajdzie taka potrzeba, tak jak; require("openurl").open("mailto:[email protected]")

3

węzeł otwarty to deprecated. Teraz użyj opn:

const opn = require('opn') 

opn('http://sindresorhus.com') // Opens the url in the default browser 

//opn('http://sindresorhus.com', {app: 'firefox'}) // Specify the app to open in 
0
var url = 'http://localhost'; 
var start = (process.platform == 'darwin'? 'open': process.platform == 'win32'? 'start': 'xdg-open'); 
require('child_process').exec(start + ' ' + url); 
Powiązane problemy