node.js - 用我的脚本没有打开的 js 关闭一个标签
问题描述
我正在开发一个使用 https、express、nodeJS 网络服务器向用户提供网页的应用程序。当用户点击“start.bat”时,节点服务器启动,浏览器打开到 localhost。目前,用户必须 CTRL + W 浏览器和 CTRL + C 服务器来关闭应用程序。我想实现一个系统,当按下 ESC 时,关闭服务器并退出当前选项卡。目前,我有一个系统可以在按下 ESC 时将用户重定向到 localhost/shutdown。NodeJS 有一个 /shutdown 端点,它为用户 public/shutdown.html 提供服务,然后在 2 秒后退出进程。
app.get(
"/shutdown",
(req, res, next) => {
res.sendFile(path.join(rootDir + "/public/shutdown.html"));
next();
},
() => {
setTimeout(() => {
process.exit();
}, 2000);
}
);
现在,我需要做的就是在服务器正确关闭后关闭 localhost/shutdown 选项卡。经过一番快速搜索后,我找到了 window.close() 函数——由于一个安全补丁,该函数不再能够关闭任何选项卡。果然,我得到了Scripts may close only the windows that were opened by them
错误,从而结束了我短暂的希望,即我找到了摆脱困境的简单方法。我试图让 nodeJS 打开一个新的 index.html,然后它会打开游戏的弹出选项卡。这将使我能够使用 (newtab).close() 退出弹出选项卡,因为它是我的脚本打开它。我意识到,即使我能够关闭这个新标签,我也会一直打开一个原始标签,因为我的脚本没有打开它。如果有人对解决此问题的方法有任何想法,我将不胜感激。
谢谢!
解决方案
推荐阅读
- react-native - 如何在 createMaterialTopTabNavigator 上方添加组件?
- javascript - 如何在 VS Code 中将点表示法转换为括号表示法?
- veins - 我应该如何在一次模拟中使用两种车辆类型?
- reactjs - 用户可以直接修改客户端代码并绕过检查吗?
- matlab - 从图中提取子图以绘制另一个图并将变量分配给 Matlab 中的轴标签
- eclipse - 当我运行 maven build 时,没有创建 manifest.mf 文件
- firebase - 为什么 Kotlin 数据类类型在写入 Firestore 文档时会更改值名称?
- javascript - 使用 translate3d 和 scale 进行转换
- html - 使用 R pagedown 包将网页提取为 PDF,没有弹出窗口和 cookie 警告
- python - TypeError: __new__() 得到了一个意外的关键字参数 'load'