网络设置会阻止除特定域名以外的所有内容,但现在我想阻止用户退出浏览器。
网络设置会阻止除特定域名以外的所有内容,但现在我想阻止用户退出浏览器。
xmodmap -pke
来查找哪个键被映射到哪个代码。
知道了键码之后,我使用:xmodmap -e "keycode 37 = "
xmodmap -e "keycode 105 = "
要禁用左右两个 CTRL 键(以防止像 CTRL+W,CTRL+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
编辑:对于那些无法禁用F1、F5等键的人,可以使用以下方法作为解决方法:
xmodmap -e "keycode 67 = Escape"
< p > < em > (一定要将“F键”分配给已经存在和分配的键) xmodmap -e“ keycode 67 = Escape”
。现在帮助已经消失了。 - Fusseldiebxmodmap -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
。 - Dreyxmodmap -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-display:0
使其在X会话外工作。这个答案应该得到更多的赞。 - mm759最近我遇到了类似的自助服务机问题(无法在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;
}
Chrome有展示模式,但这并不能阻止用户使用操作系统的键盘快捷键(如ALT+F4,这些不属于Chrome,而是由Windows处理)。要在展示模式下启动它,请使用以下参数运行:
chrome.exe --kiosk http://www.google.com
-_-
,所以我正在与他们合作解决这个问题...nano
(抱歉,我无法习惯使用 vim
)并编辑一些配置文件。