使用Node在浏览器打开某个网页

2020-10-17 09:46:16 浏览数 (1)

使用Node在浏览器打开某个网页,其实就是使用子进程来用命令行打开网页链接就可以了,需要注意的是Mac系统使用的是open命令,Windows系统使用的是start命令,Linux等系统使用xdg-open命令。针对不同的操作系统使用不同的命令。

代码

首先创建一个index.js文件,然后写我们的代码:

代码语言:javascript复制
const child_process = require('child_process');

var openURL = function (url) {
  // 判断平台
  switch (process.platform) {
    // Mac 使用open
    case "darwin":
      child_process.spawn('open', [url]);
      break;
    // Windows使用start
    case "win32":
      child_process.spawn('start', [url]);
      break;
    // Linux等使用xdg-open
    default:
      child_process.spawn('xdg-open', [url]);
  }
};

openURL("https://www.kai666666.top/");

运行

在当前命令行运行下面命令,可以看到浏览器已经打开我们的网页了。

代码语言:javascript复制
node index.js

优化

往往在代码中直接写死地址是不好的,我们使用传过来的参数视为打开的URL,修改index.js文件最后1行代码:

代码语言:javascript复制
- openURL("https://www.kai666666.top/");
  let url = process.argv[2];
  if (url) {
    openURL(url);
  } else {
    console.log("请输入URL");
  }

上面process.argv是一个数组,其中0下标的数据是node的路径,1下标的数据是执行文件也就是这里的index.js文件的路径,2到多下标中的数据是后面传入的数据,上面我们只检查2下标的数据。

最后使用下面命令启动:

代码语言:javascript复制
node index.js https://www.kai666666.top/

更多

看到上面这你会不会想到,自己封装一下打开网页的方法呢?其实已经有人这么做了,你可以看看open库,它就是使用代码来打开网页的(其实不仅仅是网页),著名的webpack插件open-browser-webpack-plugin就是使用它在启动的时候打开一个页面。当然它是需要用代码来启动的,你可能希望直接在命令行来启动,就像我们上面那样,那你可以看看open库作者的另一个库:open-cli,内部也是使用open库来启动的,只是封装了一层命令行传URL的过程。

0 人点赞