Node.js打开全屏Chrome

3

在 Node.js 编写的服务器准备就绪后,我需要打开 Google Chrome 到一个特定页面。 为了实现这个目的,我使用了以下代码:

var open = require("../lib/node_modules/open");
open("localhost:4000", "chrome");

我知道存在kiosk模式,但是

open("localhost:4000", "chrome --kiosk");

无法正常工作。

我该如何从Node.js服务器启动全屏的Chrome?


解决方案

关闭所有其他chrome实例并使用以下操作:

var childProcess = require('child_process'); 
childProcess.exec('start chrome --kiosk localhost:4000');

你确定这与Node有关吗?当你手动从命令行运行chrome --kiosk时,它是否能实现你想要的功能?另外,不是应该是-kiosk吗? - Kos
这与Node相关,因为我有Node服务器的“main”文件,必须在服务器准备就绪时才启动Chrome。 - Max Markson
1个回答

2
我已经快速查看了open源代码,特别是第31、40和47行。在那里,你可以看到应用程序名称(即第二个参数“chrome --kiosk”)被转义为“chrome%20--kiosk”。这使得在使用open时无法添加参数到应用程序名称中。
因此,你的选择是:
  • 要么fork open并添加向open中添加参数的功能
  • 像open一样使用child_process.exec,以便可以防止转义

我尝试了第二个选项:var childProcess = require('child_process'); childProcess.exec('start chrome --kiosk localhost:4000');,但仍然无效;它会打开浏览器,但不是全屏。在没有解决方案之前,我无法复刻这个开放的项目,但还是谢谢你的建议 ;) - Max Markson
在命令行中,不使用node,执行“start chrome --kiosk localhost:4000”是否可行? - Marco Tolk
请尝试以下操作:启动chrome --kiosk "localhost:4000",URL周围的引号是必需的。同时确保您没有已经打开的chrome实例。 - Marco Tolk
正确的提示是关闭所有其他Chrome实例,双引号不会有任何影响。现在我必须找到一种方法来强制在新窗口中启动。谢谢 :) - Max Markson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接