Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 当mozilla处于全屏状态时访问escape键_Javascript_Jquery_Firefox - Fatal编程技术网

Javascript 当mozilla处于全屏状态时访问escape键

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

当firefox处于全屏模式时,无法覆盖firefox的转义键功能。 这正常吗? 以下是单击按钮时取消全屏显示的代码:

函数取消全屏(){
如果(文档取消全屏){
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);