JS全屏代码,解决PDF.js在iframe中部分浏览器全屏功能错误

更新日期: 2019-05-14阅读: 2.8k标签: 全屏

问题:

页面中使用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);
  }

1

链接: https://www.fly63.com/article/detial/3319

h5页面通过js实现页面全屏显示,以及退出全屏的实现方法

这篇文章主要讲述通过js来实现html页面的全屏显示,以及退出全屏展示的方法。分享给大家查考,具体代码实现如下

fullPage.js全屏滚动插件API/方法

fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站。 主要功能有:支持鼠标滚动、支持前进后退和键盘控制...

用 ES6 写全屏滚动插件

这篇文章将介绍如何使用原生 JS (主要使用 ES6 语法)实现全屏滚动插件,兼容 IE 10+、手机触屏,Mac 触摸板优化,支持自定义页面动画,压缩后 gzip 文件只有 2k。

用JavaScript使网页全屏显示_如何使网页全屏显示

写前端网页或者做前端小游戏的时候,为了提高用户体验,需要请求网页全屏显示(这点对于手机端的页游很重要),这个需求可以通过JavaScript实现

各种浏览器全屏模式的方法、属性和事件介绍

js让浏览器全屏模式的方法launchFullscreen,HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用。浏览器全屏模式的启动函数requestFullscreen仍然需要附带各浏览器的js方言前缀

js实现全屏,退出全屏

这篇文章主要介绍了JavaScript控制全屏,监听退出全屏。以及ie低版本的全屏,退出全屏都这个方法,ie调用ActiveX控件,需要在ie浏览器安全设置里面把 未标记为可安全执行脚本的ActiveX控件初始化并执行脚本设置为启用

JS实现浏览器全屏及退出全屏的方法

我们知道,浏览器全屏通常按快捷键F11。那么如何通过JS前端实现让浏览器全屏、退出全屏? 在进行进入全屏和退出全屏的操作,需要的朋友可以参考下

typescript 实现浏览器全屏

最近后台项目需要一个全屏的按钮, github了下, 发现都仅仅支持开启全屏, 而没有切换、监听全屏状态等功能, 首先我发现ts自带的声明中, 对webkit或moz开头的这种api并没有声明类型

javascript如何实现全屏显示?

javascript可以使用Element.requestFullscreen()实现全屏也可以通过模拟F11快捷键实现全屏。Element.requestFullscreen()方法用于 异步请求使得Element(该元素)全屏显示。

css如何让图片全屏显示?

一张清晰漂亮的背景图片能给网页加分不少,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块露白,简而言之,就是实现能自适应屏幕大小又不会变形的背景大图,而且背景图片不会随着滚动条滚动而滚动。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!