zoukankan      html  css  js  c++  java
  • JS全屏事件 模拟键盘事件F11 兼容IE

    方法1:

      // 全屏  //el为全屏对象
        fullScreen(el) {
          var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen,
            wscript;
    
          if (typeof rfs != "undefined" && rfs) {
            rfs.call(el);
            return;
          }
    
          if (typeof window.ActiveXObject != "undefined") {
            wscript = new ActiveXObject("WScript.Shell");
            if (wscript) {
              wscript.SendKeys("{F11}");
            }
          }
        },
        // 退出全屏
        exitFullScreen(el) {
          var el = document,
            cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen,
            wscript;
          if (typeof cfs != "undefined" && cfs) {
            cfs.call(el);
            return;
          }
          if (typeof window.ActiveXObject != "undefined") {
            wscript = new ActiveXObject("WScript.Shell");
            if (wscript != null) {
              wscript.SendKeys("{F11}");
            }
          }
        }
    

    调用

      // 全屏
    fullScreen(app);
      // 退出全屏
    exitFullScreen();
    

    方法2:

            //全屏
            var docElm = document.documentElement;
            //W3C
            if (docElm.requestFullscreen) {
              docElm.requestFullscreen();
            }
            //FireFox
            else if (docElm.mozRequestFullScreen) {
              docElm.mozRequestFullScreen();
            }
            //Chrome等
            else if (docElm.webkitRequestFullScreen) {
              docElm.webkitRequestFullScreen();
            }
            //IE11
            else if (elem.msRequestFullscreen) {
              elem.msRequestFullscreen();
            }
          // 退出全屏
          //W3C
            if (document.exitFullscreen) {
              document.exitFullscreen();
            }
            //FireFox
            else if (document.mozCancelFullScreen) {
              document.mozCancelFullScreen();
            }
            //Chrome等
            else if (document.webkitCancelFullScreen) {
              document.webkitCancelFullScreen();
              data.name = '全屏'
            }
            //IE11
            else if (document.msExitFullscreen) {
              document.msExitFullscreen();
            }
    

    我碰到的问题:刚开始调用是if 全屏 if 退出全屏,这里if判断的失误导致点击全屏后文字马上由变成了退出全屏变成全屏,但是vue很handleClick很奇怪的是只执行了 data.name = '全屏',但是没有执行 me.exitFullScreen();

    到了IE里面两句话就都执行了,然后我错误的以为这里的全屏未生效,其实是执行完全屏后马上退出全屏了

    最终代码 全屏退出全屏方法(兼容IE)

     // 全屏  //el为全屏对象  // 判断各种浏览器,找到正确的方法
        launchFullScreen(element) {
          if (element.requestFullscreen) {
            element.requestFullscreen(); return true
          } else if (element.mozRequestFullScreen) {
            element.mozRequestFullScreen(); return true
          } else if (element.webkitRequestFullscreen) {
            element.webkitRequestFullscreen(); return true
          } else if (element.msRequestFullscreen) {
            element.msRequestFullscreen(); return true
          }
        },
        // 退出全屏
        exitFullScreen(el) {
          if (document.exitFullscreen) {
            document.exitFullscreen(); return true
          } else if (document.msExitFullscreen) {
            document.msExitFullscreen(); return true
          } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen(); return true
          } else if (document.webkitCancelFullScreen) {
            document.webkitCancelFullScreen(); return true
          }
        },
    

    调用

      // 全屏
          if (data.name == '全屏') {
            // 启动全屏!
            me.launchFullScreen(document.documentElement);
            data.name = '退出全屏'
          } else if (data.name == '退出全屏') {
            me.exitFullScreen();
            data.name = '全屏'
          }
    
  • 相关阅读:
    Spring Boot学习(三)解析 Spring Boot 项目
    Spring Boot学习(二)搭建一个简易的Spring Boot工程
    Spring Boot学习(一)初识Spring Boot
    Spring学习(十)Spring知识点汇总
    Oracle学习(十六)Oracle安装
    Spring学习(九)Spring 和数据库编程【了解】
    Spring学习(八)AOP详解
    Spring学习(七)bean装配详解之 【通过注解装配 Bean】【自动装配的歧义解决】
    Spring学习(六)bean装配详解之 【通过注解装配 Bean】【基础配置方式】
    Spring学习(五)bean装配详解之 【XML方式配置】
  • 原文地址:https://www.cnblogs.com/wwj007/p/11451538.html
Copyright © 2011-2022 走看看