Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止Esc键退出网站上的全屏应用程序模式_Javascript_Html_Macos_Safari_Fullscreen - Fatal编程技术网

Javascript 防止Esc键退出网站上的全屏应用程序模式

Javascript 防止Esc键退出网站上的全屏应用程序模式,javascript,html,macos,safari,fullscreen,Javascript,Html,Macos,Safari,Fullscreen,我正在开发一个定制的“灯箱”照片库。我正在添加关键事件“侦听器”(左>上一个,右>下一个,esc>关闭),我在退出时遇到Safari(或任何全屏模式浏览器)退出全屏模式的问题。我的网站运行良好,只是浏览者必须恢复Safari(和其他)的全屏模式 现在,我知道有办法绕过这个。例如,在“剧院”模式下查看照片时,可以使用esc键关闭Facebook,而不会导致浏览器全屏退出 有什么想法吗?实际上,您不能禁用浏览器的ESC键,因为这是一种折衷,用户至少可以对其浏览器进行一些控制。 但是,您确实有办法将e

我正在开发一个定制的“灯箱”照片库。我正在添加关键事件“侦听器”(左>上一个,右>下一个,esc>关闭),我在退出时遇到Safari(或任何全屏模式浏览器)退出全屏模式的问题。我的网站运行良好,只是浏览者必须恢复Safari(和其他)的全屏模式

现在,我知道有办法绕过这个。例如,在“剧院”模式下查看照片时,可以使用esc键关闭Facebook,而不会导致浏览器全屏退出


有什么想法吗?

实际上,您不能禁用浏览器的ESC键,因为这是一种折衷,用户至少可以对其浏览器进行一些控制。 但是,您确实有办法将eventlistener绑定到元素字段(比如lightbox div),以便在按下Esc时捕获事件并将其抑制,如下所示:(因此,当人们在gallery div上按下Esc时,它将不会退出浏览器全屏)


还有许多浏览器现在用F11键切换全屏模式。

event.preventDefault()不起作用吗?聪明人注意:在意识到我绑定了keyup事件之前,我已经为此痛击了很久了。确保将默认阻止处理程序绑定到keydown事件!谢谢你的帮助。这让我走上了在我的应用程序中解决同样问题的道路;非常感谢!我发现返回false已被弃用。现在停止事件进一步传播的正确方法是调用event.preventDefault()。见:
document.querySelector("div.lightbox").addEventListener("keydown",function(e){
    var charCode = e.charCode || e.keyCode || e.which;
    if (charCode == 27){
         alert("Escape is not suppressed for lightbox!");
        return false;
    }
});