JS全屏代码,处理PDF.js在iframe中部份浏览器全屏功用毛病

题目:页面中运用iframe嵌入PDF.js的viewer.html时,部份浏览器全屏功用毛病;

题目概况:题目涌现的浏览器主要有:edge(win10自带),火狐(按钮被屏障);

解决计划:

1.不运用iframe,新标签页翻开;- 摒弃:页面体验不好;

2.不运用iframe,运用模板规划,嵌套页面;- 摒弃:模板与PDF.js款式争执较多,适配后高耦合,不天真;

3.继承运用iframe,坚持原平台作风,重写PDF.js的全屏按钮操纵;- 终究计划:快速有用,低耦合;

全屏代码:

<a href="#" onClick="fullscreenAction()">button</a>
<p id="state" style="display:none;">no</p>

  //行动
  function fullscreenAction() {
      var state = document.getElementById('state').innerText;
      if (state == 'no') {
          fullscreen();
      } else {
          exitFullscreen();
      }
  }
  
  //全屏
  function fullscreen() {
      var docElm = document.documentElement;
      if (docElm.requestFullscreen) {
          docElm.requestFullscreen();
      } else if (docElm.mozRequestFullScreen) {
          docElm.mozRequestFullScreen();
      } else if (docElm.webkitRequestFullScreen) {
          docElm.webkitRequestFullScreen();
      } else if (docElm.msRequestFullscreen) {
          docElm.msRequestFullscreen();
      }
  }

  // 退出全屏
  function exitFullscreen() {
      if (document.exitFullscreen) {
          document.exitFullscreen();
      } else if (document.mozCancelFullScreen) {
          document.mozCancelFullScreen();
      } else if (document.webkitCancelFullScreen) {
          document.webkitCancelFullScreen();
      } else if (document.msExitFullscreen) {
          document.msExitFullscreen();
      }
  }

  // 监听是不是全屏
  window.onload = function() {
      var elem = document.getElementById('state');
      document.addEventListener('fullscreenchange',
          function() {
              elem.innerText = document.fullscreen ? 'yes': 'no';
          },
          false);
      document.addEventListener('mozfullscreenchange',
          function() {
              elem.innerText = document.mozFullScreen ? 'yes': 'no';
          },
          false);
      document.addEventListener('webkitfullscreenchange',
          function() {
              elem.innerText = document.webkitIsFullScreen ? 'yes': 'no';
          },
          false);
      document.addEventListener('msfullscreenchange',
          function() {
              elem.innerText = document.msFullscreenElement ? 'yes': 'no';
          },
          false);
  }
    原文作者:洪志
    原文地址: https://segmentfault.com/a/1190000019176932
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞