当firefox处于全屏模式时,无法覆盖firefox的转义键功能。 这是正常的吗? 以下是我点击按钮点击全屏取消的代码:
function cancelFullscreen() {
if(document.cancelFullScreen) {
document.cancelFullScreen();
} else if(document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if(document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}
在所有浏览器上工作正常,期望mozilla,似乎无法覆盖或为转义键做一个keyup。
答案 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
}
});
这解决了我的问题。