डिफ़ॉल्ट ब्राउज़र खोलने और एक विशिष्ट URL पर नेविगेट करने के लिए नोडज का उपयोग कैसे करें


135

मैं Node.js. का उपयोग करके एक एप्लिकेशन लिख रहा हूं

मेरे द्वारा बनाए गए कार्यों में से एक डिफ़ॉल्ट वेब ब्राउज़र को खोलना और एक विशिष्ट URL पर नेविगेट करना है।

मैं चाहता हूं कि यह पोर्टेबल हो ताकि यह विंडोज / मैक / लिनक्स पर चले।


3
मुझे लगता है कि यह सवाल है कि आप क्या देख रहे हैं: stackoverflow.com/questions/7664605/…
TomTasche

हाँ, यह मैक में काम करता है। क्या यह विंडोज और लिनक्स में काम करता है? मेरे हाथ में एक खिड़की की मशीन नहीं थी
किंग जू

1
xdg-Linux में काम कर रहा है :)
किंग जू

जवाबों:


167

ऑप्‍न का उपयोग करें क्‍योंकि यह क्रॉस प्‍लेटफॉर्म इशू को हैंडल करेगा। स्थापित करने के लिए:

$ npm install opn

काम में लाना:

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

फोर्ब्स लिंडसे को तुरंत कॉलबैक कहा जा रहा है, बजाय खिड़की बंद होने के। कोई विचार?
सैम सेलिकॉफ

2
यकीन नहीं हो रहा है, github.com/domenic/opener को समान API के साथ वैकल्पिक मॉड्यूल के रूप में आज़मा कर देखने लायक हो सकता है । ऐसा लगता है कि यह एक उचित मुद्दा ट्रैकर है जिस पर आप एक मुद्दा खोल सकते हैं। यह सिर्फ एक विषमता हो सकती है कि ब्राउज़र इस प्रक्रिया को समाप्त होने के रूप में कैसे रिपोर्ट करते हैं, इसलिए यह आसानी से ठीक नहीं हो सकता है।
फोर्ब्स लिंडसे

1
यह एक महान सिफारिश है, ओपी द्वारा वर्णित उपयोग के मामले के लिए बहुत अच्छी तरह से काम करता है।
jbranchaud

2
ऐसा लगता है कि मैक / विंडोज / लिनक्स पर ओपनर काम करता है जबकि ओपन केवल मैक / विंडोज पर काम करता है इसलिए ओपनर बेहतर होता है।
टॉम

2
कृपया सुझाव देने के opnबजाय अपडेट करें openक्योंकि बाद में अब हटा दिया गया है।
समीर आगुयार

43
var url = 'http://localhost';
var start = (process.platform == 'darwin'? 'open': process.platform == 'win32'? 'start': 'xdg-open');
require('child_process').exec(start + ' ' + url);

1
ध्यान दिया जाना चाहिए, विंडोज़ पर कम से कम, &URL में बच जाना चाहिए^&
junvar

1
मैं इसी तरह तर्क लिपटे, यह promisified और करने के लिए NPM प्रकाशित npmjs.com/package/out-url
azhar22k


3

आपको मान का उपयोग करके एक स्विच लागू करने की आवश्यकता हो सकती है ...

require('os').type()

और फिर मंच पर उपयोग spawn("open")या spawn("xdg-open")निर्भर करता है?


4
खिड़कियों में, मैं स्पॉन ("explorer.exe", [' stackoverflow.com'] ) आज़माता हूं , विंडोज़ एक्सप्लोरर URL खोलने के लिए डिफ़ॉल्ट ब्राउज़र का चयन करेगा।
किंग जू

@PaulIrish: अफसोस की बात है कि आपका लिंक अब मर चुका है।
mklement0

2
@QingXu कमाल! require('child_process').spawn('explorer', ['url'])एक अच्छा oneliner है!
TWIStErRob

2

सबसे आसान और साफ- सुथरा तरीका है, IMHO एक एनपीएम पैकेज का उपयोग कर रहा है जिसे ओपनरल कहा जाता है । ए करें npm install openurl। आप अपने नोड्स REPL में इस वास्तविक त्वरित की कोशिश कर सकते हैं

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

अगर जरूरत पड़ी तो आप इसके साथ ईमेल भी भेज सकते हैं; require("openurl").open("mailto:janedoe@example.com")

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.