我正在开发自定义“灯箱”照片库。我正在添加关键事件“监听器”(左>上一个,右>下一个,esc>关闭),并且我遇到了 Safari(或任何全屏模式浏览器)在退出时退出全屏模式的问题。我的网站工作正常,只是查看者必须恢复 Safari(和其他)的全屏模式。
现在,我知道有一种方法可以绕过它。例如,Facebook 在以“剧院”模式查看照片时,可以使用 esc 键关闭,而不会导致我的浏览器退出全屏。
有什么想法吗?
最佳答案
实际上,您不能禁用浏览器的 ESC 键,因为这是让用户至少对浏览器有一定控制权的妥协。 但是,您确实有办法将事件监听器绑定(bind)到您的元素字段(比如您的灯箱 div)以在按下 Esc 时捕获事件并抑制它,如下所示:(所以当人们按下 ESC 在画廊 div 上它不会退出浏览器全屏)
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;
}
});
许多浏览器现在使用 F11 键切换全屏模式。
关于javascript - 防止 Esc 键退出网站上的全屏应用程序模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20916109/