1

当 Firefox 处于全屏模式时,无法覆盖 Firefox 的退出键功能。正常吗?这是我在单击按钮时取消全屏的代码:

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

在除 mozilla 之外的所有浏览器上都可以正常工作,似乎无法覆盖或为转义键执行 keyup。

4

3 回答 3

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);
于 2014-01-28T21:16:20.173 回答
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);
})();
于 2013-09-24T13:24:54.387 回答
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
}
});

这解决了我的问题。

于 2013-09-24T13:39:17.777 回答