Javascript 当mozilla处于全屏状态时访问escape键
当firefox处于全屏模式时,无法覆盖firefox的转义键功能。 这正常吗? 以下是单击按钮时取消全屏显示的代码:Javascript 当mozilla处于全屏状态时访问escape键,javascript,jquery,firefox,Javascript,Jquery,Firefox,当firefox处于全屏模式时,无法覆盖firefox的转义键功能。 这正常吗? 以下是单击按钮时取消全屏显示的代码: 函数取消全屏(){ 如果(文档取消全屏){ document.cancelFullScreen(); }else if(document.mozCancelFullScreen){ document.mozCancelFullScreen(); }else if(document.webkitcancelfillscreen){ document.webkitcancelful
函数取消全屏(){
如果(文档取消全屏){
document.cancelFullScreen();
}else if(document.mozCancelFullScreen){
document.mozCancelFullScreen();
}else if(document.webkitcancelfillscreen){
document.webkitcancelfulscreen();
}
}
在除mozilla之外的所有浏览器上都能正常工作,似乎无法覆盖或为escape键执行keyup操作。请在keypress和keydown上尝试以下逻辑:
(function() {
function cancelFullScreen(event) {
if (event.keyCode == 27 )
{
event.cancelBubble = true;
event.stopPropagation();
return false;
}
}
window.addEventListener('keypress', cancelFullScreen, true);
window.addEventListener('keydown', cancelFullScreen, true);
})();
这解决了我的问题。我在设置全屏视频播放器时遇到了类似的问题。Firefox似乎保留了escape键,不允许您使用keydown、keyup或keypress覆盖或更改其功能 但是,当屏幕从全屏切换到非全屏时,您可以添加事件侦听器并添加函数,如下所示:
function isFullScreen() {
// do stuff for full screen
}
function notFullScreen() {
// do stuff for non-full screen
}
document.addEventListener("mozfullscreenchange", function () {
(document.mozFullScreen) ? isFullScreen() : notFullScreen();
}, false);
或者不使用三元运算符,如下所示:
document.addEventListener("mozfullscreenchange", function () {
if (document.mozFullScreen) {
isFullScreen();
} else {
notFullScreen();
}
}, false);
document.addEventListener("mozfullscreenchange", function () {
if (document.mozFullScreen) {
isFullScreen();
} else {
notFullScreen();
}
}, false);