禁用浏览器快捷键

5
我正在尝试创建一个“信息亭”。

我有一个网络应用程序,希望它是唯一可在屏幕上访问的内容。我知道Chrome有一个“信息亭”模式(快捷方式:chrome.exe --kiosk www.url.com)。它可以自动全屏,但禁用很少的快捷键(可能只有F11)。

在互联网的帮助下,我编写了一些JavaScript代码,完成了大部分工作。代码如下:

window.onload = function() {
    window.document.body.onkeydown = function() {
        if (event.ctrlKey) {
            event.stopPropagation();
            event.preventDefault();
            try {
                event.keyCode = 0; // this is a hack to capture ctrl+f ctrl+p etc
            }
            catch (event) {

            }
            return false;
        }
        return true; // for keys that weren't shortcuts (e.g. no ctrl) then the event is bubbled
    }
}

这段话的意思是:“这可以解决像ctrl+f、ctrl+p等问题。不幸的是,它不能禁用诸如ctrl+t、ctrl+n、f5等快捷键。我是否能够禁用这些快捷键,或者我在追逐虹霓?我不介意使用JavaScript、设置或其他方式来实现,但我真的希望能够在不使用插件的情况下完成。”
1个回答

3

您可以通过JavaScript禁用任何想禁用的按键。您只需要知道它们的键码即可。


1
我看到的问题是,像ctrl+t或ctrl+n这样的操作甚至不会发送JS可以捕获的事件 - 看起来它立即打开一个新的选项卡/窗口,而JavaScript甚至无法对此做出任何反应。但是您确实是正确的,关于捕获F5 :) 谢谢 - Ledivin
从一些谷歌搜索来看,当Chrome在应用程序模式下启动时,似乎可以拦截这些内容。 - Mike Brant

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