js指定元素全屏并监听退出全屏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js指定元素全屏并监听退出全屏相关的知识,希望对你有一定的参考价值。

参考技术A 1.全屏实现

2.监听esc取消全屏

从网上也看到了能够实现退出全屏的方法,但是我chrome和firefox上尝试了一下,并没有看到能退出全屏的效果。如果有哪位大佬证实能够实现退出全屏的方法,麻烦告诉我一下,我再进行改正。

最后感谢各位看官老爷。

让用户端JS触发F11全屏

    让用户端JS触发指的就是让用JS监听用户的操作事件,通过JS程序去实现F11全屏。这个事件可以是一个按钮的点击事件,当然也可以是键盘事件,比如用户按下F11。
    1.F11键盘事件触发
  当用户按下F11事件,浏览器为触发自身全屏功能,这个过程我们一般是不可控制的,即使是监听了F11的键盘事件,退出全屏的时候,我们也捕捉不到退出全屏触发的事件。所以,我们就用程序自己去实现F11的功能,首先需要禁用浏览器默认的事件动作。
 

 1 $(document).on(‘keydown‘, function (e) {
 2      var e = event || window.event || arguments.callee.caller.arguments[0];
 3      if(e && e.keyCode == 122){//捕捉F11键盘动作
 4        e.preventDefault();  //阻止F11默认动作
 5        var el = document.documentElement;
 6        var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen;//定义不同浏览器的全屏API
      //执行全屏
7 if (typeof rfs != "undefined" && rfs) { 8 rfs.call(el); 9 } else if(typeof window.ActiveXObject != "undefined"){ 10 var wscript = new ActiveXObject("WScript.Shell"); 11 if (wscript!=null) { 12 wscript.SendKeys("{F11}"); 13 } 14 }
      //监听不同浏览器的全屏事件,并件执行相应的代码
15 document.addEventListener("webkitfullscreenchange", function() {// 16 if (document.webkitIsFullScreen) { 17 //全屏后要执行的代码 18 }else{ 19 //退出全屏后执行的代码 20   } 21 }, false); 22 23 document.addEventListener("fullscreenchange", function() { 24 if (document.fullscreen) { 25 //全屏后执行的代码 26 }else{ 27 //退出全屏后要执行的代码 28 } 29 }, false); 30 31 document.addEventListener("mozfullscreenchange", function() { 32 if (document.mozFullScreen) { 33 //全屏后要执行的代码 34 }else{ 35 //退出全屏后要执行的代码 36 } 37 }, false); 38 39 document.addEventListener("msfullscreenchange", function() { 40 if (document.msFullscreenElement) { 41 //全屏后要执行的代码 42 }else{ 43 //退出全屏后要执行的代码 44 } 45 }, false) 46 } 47 }

 

以上是关于js指定元素全屏并监听退出全屏的主要内容,如果未能解决你的问题,请参考以下文章

js如何监听浏览器全屏时退出按钮事件?

元素全屏的设置与监听

vue中实现浏览器全屏与退出全屏功能

JS实现浏览器全屏

vue中实现全屏以及对退出全屏的监听

点击按钮全屏,按esc退出全屏