JS 全屏和退出全屏详解及实例代码


Posted in Javascript onNovember 07, 2016

JS 全屏和退出全屏

js实现浏览器窗口全屏和退出全屏的功能,市面上主流浏览器如:谷歌、火狐、360等都是兼容的,不过IE低版本有点瑕疵(全屏状态下仍有底部的状态栏)。

这个demo基本是够了,直接复制下面的源码另存为html文件看效果吧。

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js全屏和退出全屏代码</title>
<body>
<!-- requestFullScreen(document.documentElement): 整个网页进入全屏
  requestFullScreen(document.getElementById("video-box")): 指定某块区域全屏
 -->
<button onclick="requestFullScreen(document.documentElement)">全屏显示</button>
<button onclick="exitFull()">退出全屏</button>
</body>
<script type="text/javascript">
function requestFullScreen(element) {
 // 判断各种浏览器,找到正确的方法
 var requestMethod = element.requestFullScreen || //W3C
 element.webkitRequestFullScreen || //Chrome等
 element.mozRequestFullScreen || //FireFox
 element.msRequestFullScreen; //IE11
 if (requestMethod) {
  requestMethod.call(element);
 }
 else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorer
  var wscript = new ActiveXObject("WScript.Shell");
  if (wscript !== null) {
   wscript.SendKeys("{F11}");
  }
 }
}

//退出全屏 判断浏览器种类

function exitFull() {
 // 判断各种浏览器,找到正确的方法
 var exitMethod = document.exitFullscreen || //W3C
 document.mozCancelFullScreen || //Chrome等
 document.webkitExitFullscreen || //FireFox
 document.webkitExitFullscreen; //IE11
 if (exitMethod) {
  exitMethod.call(document);
 }
 else if (typeof window.ActiveXObject !== "undefined") {//for Internet Explorer
  var wscript = new ActiveXObject("WScript.Shell");
  if (wscript !== null) {
   wscript.SendKeys("{F11}");
  }
 }
}
</script>
</html>

感谢阅读,希望嫩帮助到大家,谢谢大家对本站的支持!

以下是其它网友的补充

我们知道,浏览器全屏通常按快捷键F11。JS控制浏览器全屏也不稀奇,它让Web应用看上去更像似原生软件应用效果。比如点餐系统、叫号系统等等。

JS让浏览器全屏及退出全屏的方法网上很多,这不是重点,重点是需注意:浏览器全屏只能通过鼠标手势点击事件去触发。

JS全屏方法

var $fullScreen = document.getElementById("js-fullScreen");//按钮 
if ($fullScreen) { 
  $fullScreen.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); 
}

JS退出全屏方法

var $cancelFullScreen = document.getElementById("js-cancelFullScreen"); 
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); 
}

控制台警告

Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.

释义:在"Element"上执行"requestFullscreen"方法失败,javascript API仅允许通过手势去创建!(即没有权限)

通常是由于程序员想触发浏览器自动全屏显示而导致。但是很抱歉,此方法行不通,必须通过手势去创建,哪怕onload、trigger()、mouseover也触发不了!

官方解释

该Element.requestFullscreen()方法发出异步请求,使元素全屏显示。但不能保证元素将被放入全屏模式。

如果允许进入全屏模式,文档将收到一个fullscreenchange事件,让它知道它现在处于全屏模式。如果权限被拒绝,则文档会接收到一个fullscreenerror事件。

结论

可能出于用户操作体验的考虑吧,客户端javascript让浏览器全屏只能通过鼠标手势点击事件去触发,即click()。

Javascript 相关文章推荐
基于Web标准的UI组件 — 树状菜单(2)
Sep 18 Javascript
IE和Mozilla的兼容性汇总event
Aug 12 Javascript
IE下js调试工具Companion.JS
Oct 15 Javascript
在javascript中如何得到中英文混合字符串的长度
Jan 17 Javascript
Js实现手机发送验证码时按钮延迟操作
Jun 20 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
基于jQuery的左滑出现删除按钮的示例
Aug 29 jQuery
angular4自定义组件详解
Sep 28 Javascript
基于Vue 服务端Cookies删除的问题
Sep 21 Javascript
Vue.js watch监视属性知识点总结
Nov 11 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 Javascript
easyui tree带checkbox实现单选的简单实例
Nov 07 #Javascript
vue.js初学入门教程(2)
Nov 07 #Javascript
AngularJS递归指令实现Tree View效果示例
Nov 07 #Javascript
基于Bootstrap仿淘宝分页控件实现代码
Nov 07 #Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 #Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
Nov 07 #Javascript
AngularJS实现Input格式化的方法
Nov 07 #Javascript
You might like
PHP 编程的 5个良好习惯
2009/02/20 PHP
php中$this-&amp;gt;含义分析
2009/11/29 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
解析PHP提交后跳转
2013/06/23 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
javascript中的缓动效果实现程序
2012/12/29 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
名片管理系统python版
2018/01/11 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
python写入已存在的excel数据实例
2018/05/03 Python
tensorflow 获取变量&amp;打印权值的实例讲解
2018/06/14 Python
python配置grpc环境
2019/01/01 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
施工人员岗位职责
2013/12/12 职场文书
中国梦的演讲稿
2014/01/08 职场文书
三爱活动实施方案
2014/03/19 职场文书
会计求职自荐信
2014/06/20 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
关于童年的读书笔记
2015/06/26 职场文书
治庸问责工作总结
2015/08/11 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书