禁用谷歌浏览器中的快捷键

38
有没有办法在Google Chrome中禁用并替换快捷命令。我想在公共计算机上使用Chrome,该计算机只能访问一个站点。因此,我想禁用像Ctrl+TabCtrl+TAlt+F4这样的按键,并且我想将F11更改为像Ctrl+Shift+Alt+J(示例)这样的命令,以防止用户退出全屏模式。

网络设置会阻止除特定域名以外的所有内容,但现在我想阻止用户退出浏览器。


2
显然,Chrome OS 就是答案 ;-p - Josh Lee
9
写自己的浏览器可能更简单。 - Gilbert Le Blanc
这里有几个其他的答案:https://askubuntu.com/questions/162700/how-can-one-disable-shortcuts-of-chrome - Wimateeka
4个回答

12
我知道这个问题已经很老了,但是我找到了一个适合我的解决方案(也可能适用于许多其他人)。 如果您在浏览器中根本不使用CTRLALT键,则可以在操作系统中禁用它们。
在Linux下,我使用xmodmap -pke来查找哪个键被映射到哪个代码。 知道了键码之后,我使用:
xmodmap -e "keycode 37 = "
xmodmap -e "keycode 105 = "

要禁用左右两个 CTRL(以防止像 CTRL+WCTRL+T 等类似情况),可以使用以下代码:

xmodmap -e "keycode 133 = "
xmodmap -e "keycode 134 = "

左右两边的SUPER键(Windows键)(以防止打开开始菜单等花哨的东西)

最后使用xmodmap -e "keycode 105 = "禁用了ALT(以防止ALT+F4等操作)

如果需要,我们还可以禁用F1,这样Chrome的支持页面就不会打开:xmodmap -e "keycode 67 = "

最后,让Chromium或Chrome使用Kiosk模式为我们锁定其余部分:

chromium-browser --kiosk http://example.com/

或者
google-chrome --kiosk http://example.com/

在kiosk模式下,右键已被禁用,因此我们不需要改变任何内容。

完成所有这些步骤后,最终用户只能使用鼠标浏览预定义的网页(当然还包括指向其他内容的链接),并使用键盘上的普通字符进行输入,但不能做更多操作。刷新仍可能是可行的(F5),但即使这也可以通过以下命令禁用:xmodmap -e "keycode 71 = "

注意:先执行xmodmap -pke以发现您的键盘或操作系统是否具有相同的键映射,否则可能会在不知情的情况下禁用其他正常键。

注意2:请注意,如果您完成了上述所有步骤,然后在kiosk模式下启动Chrome或Chromium,则将无法再退出!只有直接按下电源按钮或通过SSH或Telnet终止应用程序才能恢复正常操作。

要使这些更改永久生效,请阅读本指南末尾的内容:https://stackoverflow.com/a/11219056/3525780

编辑:对于那些无法禁用F1F5等键的人,可以使用以下方法作为解决方法:

xmodmap -e "keycode 67 = Escape"
< p > < em > (一定要将“F键”分配给已经存在和分配的键)


(一些情况下,“F键”需要分配给已经存在且已分配的键)。

2
@Drey,我刚发现F1实际上不受xmodmap的影响,它仍然会打开帮助页面...我正在寻找解决方案... - Fusseldieb
1
@Drey 已解决。由于某种原因,您必须将keycode 67设置为现有键。我将我的设置为ESC,如下所示:xmodmap -e“ keycode 67 = Escape”。现在帮助已经消失了。 - Fusseldieb
感谢您的快速回复,Fusseldieb。我非常感激。我已经尝试过映射到End/Home键,刚刚我尝试了这些行: xmodmap -e "keycode 67 = Escape" xmodmap -e "keycode 69 = F1"。 F1和F3都像往常一样工作(分别是帮助和搜索)。xmodmap -pke在这些行之后显示: keycode 9 = Escape NoSymbol Escape keycode 67 = Escape NoSymbol Escape keycode 69 = F1 NoSymbol F1 - Drey
发现整个xmodmap的东西对我不起作用了=(以前我成功地使用以下几行禁用了Ctrl/Alt/Super修饰符: xmodmap -e "clear mod1", xmodmap -e "clear control", xmodmap -e "clear lock", xmodmap -e "clear mod4"。现在Alt键在Chrome中又可以使用了。使用xmodmap -pm检查显示所有修饰符都已清除(除了Shift): xmodmap: up to 2 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock control mod1 mod2 mod3 mod4 mod5 。 我真的很沮丧... - Drey
1
非常好,非常感谢!不幸的是,Gnome使得使更改永久化变得困难(https://bugzilla.gnome.org/show_bug.cgi?id=721873)。需要使用参数 -display:0 使其在X会话外工作。这个答案应该得到更多的赞。 - mm759
显示剩余7条评论

7

最近我遇到了类似的自助服务机问题(无法在Chrome中禁用所有按键),最终我找到了一个解决方案,现在与大家分享:

使用 node-webkit,我创建了以下的 package.json 文件:

{
    "name" : "mykiosk",
    "window" : {
        "fullscreen" : true,
        "toolbar" : false
    },
    "main" : "http://the-one-and-only-allowed.url/"
}

启动命令:./nw

所有功能键都被阻止。按下Ctrl+N/T不会创建标签页,这很好。

最后一个用于禁用右键菜单的javascript/onload技巧:

window.oncontextmenu = function(ev) {
  ev.preventDefault();
  ev.stopPropogation();
  return false;
}

不错,你的解决方案在Windows上可以阻止一切,但是Alt+F4组合键除外。也许我可以编译一个带有捕获Alt-F4事件的nw版本? - Matthew Optional Meehan
我从未尝试过Windows。我不知道如何防止alt-f4关闭窗口。如果您成功编译了一个捕获alt-f4的nw版本,我会有兴趣尝试一下。 - chriskelly

4

Chrome有展示模式,但这并不能阻止用户使用操作系统的键盘快捷键(如ALT+F4,这些不属于Chrome,而是由Windows处理)。要在展示模式下启动它,请使用以下参数运行:

chrome.exe --kiosk http://www.google.com

我的公共图书馆做了一件非常棒的事情:他们在自己的信息亭上安装了一个极简版的Debian系统,并在每台设备上运行Google Chrome。没有关闭按钮,也没有桌面,这样就阻止了几乎所有的 CTRL+ALT+DELETE 黑客攻击。 ALT+F4 也不起作用,右键单击关闭浏览器会立即打开另一个浏览器。
但是他们忘记了去除GRUB的10秒超时,让用户(比如我)可以进入恢复模式 -_-,所以我正在与他们合作解决这个问题...
我认为Linux值得考虑,因为你可以在多台计算机上快速安装它,基本上不用担心病毒和安全问题。但缺点是没有“管理员面板”供您进行调整。您需要使用 nano(抱歉,我无法习惯使用 vim)并编辑一些配置文件。

你能多说一些关于你的公共库的事情吗?他们是如何禁用Alt+F4的? - Juzer Ali
似乎即使在Kiosk模式下,Chrome仍然允许使用Ctrl-T、Ctrl-N和Ctrl-W等快捷键。你有什么想法? - Lee Olayvar
@LeeOlayvar:为此,您可以使用Qt4的QWebkit小部件制作一个简单的全屏浏览器。它只接受右键单击,您也可以禁用它,因此您需要担心的唯一事情是键盘输入和导航,但这并不难修复。 - Blender
我想你是在谈论这个:Ubuntu作为信息亭,对吗? - Gustavo Carreno

1
对于我使用的版本52.0.2743,--kiosk标签没有起作用,但是--app="http://www.example.com"达到了我想要的效果。(禁用chrome键盘快捷键,这样我就可以无问题地使用shellinabox + nano。)
在Chrome Canary上也有效(其中--kiosk标签也没有起作用)。
其他可能有用的链接: Chrome支持如何制作Kiosk应用程序:https://support.google.com/chrome/a/answer/3316168?hl=en Chrome Kiosk应用程序:https://chrome.google.com/webstore/detail/kiosk/afhcomalholahplbjhnmahkoekoijban?hl=en

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