当mozilla全屏显示时访问转义键

时间:2013-09-24 13:12:00

标签: javascript jquery firefox

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

function cancelFullscreen() { if(document.cancelFullScreen) { document.cancelFullScreen(); } else if(document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if(document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } }

在所有浏览器上工作正常,期望mozilla,似乎无法覆盖或为转义键做一个keyup。

3 个答案:

答案 0 :(得分:2)

我在设置全屏视频播放器时遇到了类似的问题。 Firefox似乎保留了转义密钥,并且不允许您使用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);

答案 1 :(得分:1)

在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);
})();

答案 2 :(得分:0)

$(window).resize(function(){
if (window.navigator.standalone || (document.fullScreenElement && document.fullScreenElement !=null) || (document.mozFullScreen || document.webkitIsFullScreen) || (!window.screenTop && !window.screenY)){
}else{
    // my code went here
}
});

这解决了我的问题。