node.js如何打开指定浏览器

一、使用child_process

1
2
3
4
5
var c = require('child_process');
// 使用默认浏览器打开
//c.exec('start https://www.youcongtech.com');
// 使用指定浏览器打开
c.exec('start chrome https://www.youcongtech.com');

二、使用open

1
2
3
4
5
6

var open = require('open');
// 使用默认浏览器打开
//open('https://www.youcongtech.com');
// 使用指定浏览器打开
open('https://www.youcongtech.com', 'firefox');

三、使用opn

1
2
3
4
5
const opn = require('opn');
// 使用默认浏览器打开
//opn('https://www.youcongtech.com');
// 使用指定浏览器打开
opn('https://www.youcongtech.com', {app: 'firefox'});

四、自定义封装函数(针对打开浏览器访问指定的URL)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var fs     = require('fs')
var os = require('os')
var cp = require('child_process')
var path = require('path')
var open = function(url) {
var userInfo = os.userInfo()
var chromePath = path.join(userInfo.homedir, 'Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe')
var openByIE = function() {
cp.exec('start chrome ' + url, function(err, stdout, stderr) {
if (err) {
console.log(err)
}
})
}
fs.stat(chromePath, function(err) {
if (err) {
openByIE()
return
}
cp.exec('start firefox ' + url, function(err, stdout, stderr) {
if (err) {
openByIE()
return
}
})
})
}

open("https://youcongtech.com")

五、注意问题

常见错误:

1
Error: Cannot find module 'xx'

xx是对应的模块,缺失对应的模块是无法调用对应的API的。

解决办法(安装模块):

1
npm install xx

文章目录
  1. 一、使用child_process
  2. 二、使用open
  3. 三、使用opn
  4. 四、自定义封装函数(针对打开浏览器访问指定的URL)
  5. 五、注意问题