2011-12-14 29 views
68

Tôi đang viết một ứng dụng bằng cách sử dụng Node.js.Cách sử dụng nút bấm để mở trình duyệt mặc định và điều hướng đến một URL cụ thể

Một trong những chức năng tôi muốn tạo là mở trình duyệt web mặc định và điều hướng đến một URL cụ thể.

Tôi muốn thiết bị di động để nó chạy trên Windows/Mac/Linux.

+3

Tôi đoán câu hỏi này là những gì bạn đang tìm kiếm: http://stackoverflow.com/questions/7664605/how-would-you-launch-a-browser-from -e-a-node-js-dòng lệnh-script – TomTasche

+0

yep, nó hoạt động trong Mac. nó hoạt động trong Windows và Linux? tôi không có một cỗ máy cửa sổ nào trong tay –

+1

xdg-open đang làm việc trong Linux :) –

Trả lời

1

bạn có thể cần phải thực hiện một công tắc sử dụng giá trị của ...

require('os').type() 

và việc sử dụng spawn ("mở") hoặc spawn ("xdg mở") tùy thuộc vào nền tảng này?

+3

Trong các cửa sổ, tôi cố gắng đẻ trứng ("explorer.exe", ['http://www.stackoverflow.com']), windows explorer sẽ chọn trình duyệt mặc định để mở URL. –

+2

https://github.com/fixedset/open.js xử lý vấn đề nền tảng x –

+0

@PaulIrish: Đáng buồn thay, liên kết của bạn đã chết ngay bây giờ. – mklement0

100

Sử dụng opn vì nó sẽ xử lý vấn đề nền tảng chéo. Để cài đặt:

$ npm install opn 

Cách sử dụng:

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 cuộc gọi lại đang được gọi ngay lập tức, thay vì khi cửa sổ đóng. Bất kỳ ý tưởng? –

+1

Không chắc chắn, có thể đáng để https://github.com/domenic/opener thử dùng làm mô-đun thay thế có cùng API. Dường như nó có một bộ theo dõi vấn đề thích hợp, bạn có thể mở một vấn đề trên. Nó có thể chỉ là một sự kỳ quặc của cách trình duyệt báo cáo quá trình như kết thúc mặc dù, vì vậy nó có thể không dễ dàng sửa chữa được. – ForbesLindesay

+0

Đây là một khuyến nghị tuyệt vời, hoạt động rất tốt cho trường hợp sử dụng được mô tả bởi OP. – jbranchaud

1

Cách dễ nhất và thú vị nhất, IMHO đang sử dụng một gói NPM gọi OpenURL. Thực hiện một số npm install openurl. Bạn có thể thử nhanh thực này trong Nodejs REPL bạn

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

Bạn cũng có thể gửi email với nó nếu có nhu cầu như vậy; require("openurl").open("mailto:[email protected]")

3

nút mở là deprecated. Bây giờ sử dụng 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); 
Các vấn đề liên quan