我们正在开发基于 NWJS 0.13.0 Alpha 版本的 Chrome 应用程序的应用程序,因为较低版本不支持 Chrome 应用程序。我们需要版本 13,以便我们可以使用串行端口。
但是在 Windows 或 Ubuntu 中,当按右键单击时,它会显示一个我禁用的菜单(因为它是这样指定的),在我的所有 HTML 中具有以下功能:
<body oncontextmenu="return false">
<script language="javascript">
document.onmousedown=disableclick;
function disableclick(event) {
if(event.button==2) {
return false;
}
}
</script>
但是在 Mac OS X 中,由于自定义菜单,我们遇到了另一个问题,在阅读清单格式后,我发现在我的package.json
文件中我需要添加"no-edit-menu": false
属性并且该菜单不再显示,package.json
文件如下:
{
"main": "main.html",
"name": "PAGUSS",
"description": "Paguss Payment Services",
"version": "0.1.0",
"keywords": [ "paguss", "payment" ],
"window": {
"title": "Paguss",
"transparent": true,
"icon": "assets/images/64x64.png",
"toolbar": false,
"frame": true,
"resizable": true,
"position": "mouse",
"min_width": 400,
"min_height": 500,
"max_width": 1200,
"max_height": 800,
"no-edit-menu": false
},
"webkit": {
"plugin": false
}
}
现在,我尝试更改文件"toolbar": false,
,package.json
因此没有工具栏,因此用户无法从那里打开 devtools,但如果他们按下F12
或Shift-Ctrl-J
他们仍然能够打开 devtools 窗口。我还在上面的脚本中尝试了以下行,以尝试禁用 devtools 窗口以无法成功打开(至少在 Mac OS X 上,我们优先禁用它):
if(event.button==2 || window.event.keycode==123 || (window.event.keycode==55 && window.event.keycode==58 && window.event.keycode==34)) {
return false;
}
我从这里得到了苹果键盘的上述键码。
我对 Javascript 编码真的很陌生,所以我的一些尝试可能不正确或接近正确。
有没有办法在任何操作系统上禁用开发工具在 NWJS 13 上打开?
编辑
我发现第二次尝试使用 keyCodes 时出现错误。
我试图在右键单击事件中调用脚本,我将代码更改为:
<script language="javascript">
document.onmousedown=disableclick;
document.onkeydown=disableconsole;
function disableclick(event) {
if(event.button==2) {
return false;
}
}
function disableconsole(event) {
if (event.keyCode==123) {
return false;
}
}
</script>
这实际上阻止了控制台F12
在 Linux 上使用密钥打开开发工具,但是即使使用此更新,Windows 和 OS X 仍然无法正常工作。
编辑 2
我发现在这张表上看到的不同操作系统有不同的 keyCodes,所以我想我在 Windows 和 OS X 上测试时没有得到成功的响应。