使用Windows命令行cmd可以指定浏览器打开网址。在node.js中使用start即可:
比如分别用Chrome和IE打开网址
start chrome http://www.google.cn
start iexplore http://www.google.cn
但是当用户没有安装Chrome时使用start则会报错,并会弹出错误对话框:
[Window Title]
chrome
[Content]
Windows 找不到文件 'chrome'。请确定文件名是否正确后,再试一次。
如果不想弹出对话框,则需要事先检查Chrome是否安装。
Chrome默认安装位置为:
C:\Documents and Settings\{USERNAME}\Local Settings\Application Data\Google\Chrome\Application
我们还需要借助os获取Windows当前登录的用户名,如果没有安装Chrome的话,则用IE打开,最终代码如下:
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 iexplore ' + url, function(err, stdout, stderr) {
if (err) {
console.log(err)
}
})
}
fs.stat(chromePath, function(err) {
if (err) {
openByIE()
return
}
cp.exec('start chrome ' + url, function(err, stdout, stderr) {
if (err) {
openByIE()
return
}
})
})
}
回复 (0)
微信扫码 立即评论