Javascript Chrome、Firefox上的全屏模式问题

Javascript Chrome、Firefox上的全屏模式问题,javascript,jquery,google-chrome,firefox,fullscreen,Javascript,Jquery,Google Chrome,Firefox,Fullscreen,我正在为这个网站做全屏功能: 在浏览器的右下角,有一个全屏按钮。如果单击它,浏览器将进入全屏模式,然后再次单击它,浏览器将退出全屏模式 但在Chrome、Firefox上,有一个小问题我无法理解:如果单击F11(全屏模式的快捷方式),菜单屏幕按钮不起作用 我搜索了gooogle并尝试在javascript中使用许多技巧,但还是失败了。那真是一种痛苦 有人能帮我吗( 感谢您需要使用此功能: <!doctype html> <html lang="en"> <

我正在为这个网站做全屏功能:

在浏览器的右下角,有一个全屏按钮。如果单击它,浏览器将进入全屏模式,然后再次单击它,浏览器将退出全屏模式

但在Chrome、Firefox上,有一个小问题我无法理解:如果单击F11(全屏模式的快捷方式),菜单屏幕按钮不起作用

我搜索了gooogle并尝试在javascript中使用许多技巧,但还是失败了。那真是一种痛苦

有人能帮我吗(


感谢您需要使用此功能:

    <!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
 </head>
 <body>
 <p>
                    <button id="view-fullscreen">Fullscreen</button>
                    <button id="cancel-fullscreen">Cancel fullscreen</button>
                </p>
  <script>
  (function () {
    var viewFullScreen = document.getElementById("view-fullscreen");
    if (viewFullScreen) {
        viewFullScreen.addEventListener("click", function () {
            var docElm = document.documentElement;
            if (docElm.requestFullscreen) {
                docElm.requestFullscreen();
            }
            else if (docElm.msRequestFullscreen) {
                docElm.msRequestFullscreen();
            }
            else if (docElm.mozRequestFullScreen) {
                docElm.mozRequestFullScreen();
            }
            else if (docElm.webkitRequestFullScreen) {
                docElm.webkitRequestFullScreen();
            }
        }, false);
    }

    var cancelFullScreen = document.getElementById("cancel-fullscreen");
    if (cancelFullScreen) {
        cancelFullScreen.addEventListener("click", function () {
            if (document.exitFullscreen) {
                document.exitFullscreen();
            }
            else if (document.msExitFullscreen) {
                document.msExitFullscreen();
            }
            else if (document.mozCancelFullScreen) {
                document.mozCancelFullScreen();
            }
            else if (document.webkitCancelFullScreen) {
                document.webkitCancelFullScreen();
            }
        }, false);
    }    
})();

  </script>
 </body>
</html>

文件

全屏
取消全屏

(功能(){ var viewFullScreen=document.getElementById(“查看全屏”); 如果(查看全屏){ viewFullScreen.addEventListener(“单击”),函数(){ var docElm=document.documentElement; if(文档请求全屏){ docElm.requestFullscreen(); } else if(docElm.msRequestFullscreen){ msRequestFullscreen(); } else if(docElm.mozRequestFullScreen){ docElm.mozRequestFullScreen(); } else if(docElm.webkitRequestFullScreen){ docElm.webkitRequestFullScreen(); } },假); } var cancelFullScreen=document.getElementById(“取消全屏”); 如果(全屏取消){ cancelFullScreen.addEventListener(“单击”),函数(){ if(document.exitFullscreen){ document.exitFullscreen(); } else if(document.msexit全屏){ document.msExitFullscreen(); } else if(document.mozCancelFullScreen){ document.mozCancelFullScreen(); } else if(document.webkitcancelfillscreen){ document.webkitcancelfulscreen(); } },假); } })();
防止浏览器F11的默认行为,并触发全屏按钮来模拟用户体验。如果不包括jQuery库,则包括jQuery库。这很有效

$(document).keyup(function(e){
   if(e.which==122){ // charCode 122 for F11 key
       e.preventDefault();
       ('#fullscreenbuttonid').click();
       return false;
   }
});

希望它有帮助

您应该在执行之前验证

功能全屏(divID){
fnFullScreen(divID,!IsFullScreen());
}
函数为全屏(){
返回(document.fullscreenElement&&document.fullscreenElement!==null)||
(document.webkitFullscreenElement&&document.webkitFullscreenElement!==null)||
(document.mozFullScreenElement&&document.mozFullScreenElement!==null)||
(document.msFullscreenElement&&document.msFullscreenElement!==null);
}
全屏功能(divID,开启){
如果(打开){
var docElm=$('#'+divID).parent()[0];
if(文档请求全屏){
docElm.requestFullscreen();
}else if(docElm.mozRequestFullScreen){
docElm.mozRequestFullScreen();
}else if(docElm.webkitRequestFullScreen){
docElm.webkitRequestFullScreen();
}else if(docElm.msRequestFullscreen){
msRequestFullscreen();
}
$('#'+divID).css(“最小高度”,“100vh”);
$('.btnFullScreen').html('退出全屏');
}否则{
if(document.exitFullscreen){
document.exitFullscreen().catch(()=>{});
}else if(document.webkitExitFullscreen){
document.webkitExitFullscreen();
}else if(document.mozCancelFullScreen){
document.mozCancelFullScreen();
}else if(document.msexit全屏){
document.msExitFullscreen();
}
$('#'+divID).css(“最小高度,”);
$('.btnFullScreen').html('全屏');
}
}

全屏单击可全屏显示

看一下本教程,我尝试了这段代码。它无助于解决这个问题。它在Chrome和Firefox上运行良好,但在Opera上不起作用??IE和Opera不支持charCode,Safari为按键提供了奇怪的值。所以我猜你无法在这些浏览器中正确捕获charCodes。既然代码对你有效,请如果你得到了你所需要的,请回答。