JS 全屏和退出全屏

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

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

js全屏和退出全屏代码

全屏显示

退出全屏

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}");

}

}

}

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

以下是其它网友的补充

我们知道,浏览器全屏通常按快捷键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()。

linux控制台则怎么退出全屏,JS 全屏和退出全屏详解及实例代码相关推荐

  1. Linux用户、权限及改变文件所有者及文件所属组多例详解 附python代码

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Linux用户.权 ...

  2. linux系统下grub.cfg详解和实例操作

    linux系统下grub.cfg详解和实例操作 简介 grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后,内核会根据grub配置文件中的配置,找到根分区所使用的文 ...

  3. vue.js循环for(列表渲染)详解

    vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for <ul id="example-1"> <li v-for="item in ...

  4. 红帽Linux故障定位技术详解与实例(1)

    红帽Linux故障定位技术详解与实例(1) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍 ...

  5. android 图片横竖判断_Android横竖屏切换及其对应布局加载问题详解

    本文为大家分享了Android横竖屏切换及其对应布局加载问题,供大家参考,具体内容如下 第一,横竖屏切换连带横竖屏布局问题: 如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同 ...

  6. 红帽Linux故障定位技术详解与实例(3)

    红帽Linux故障定位技术详解与实例(3) 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问,故障处理人员可通过console, ssh等方式登录到操作系统上,在shell上执行各种 ...

  7. FileReader详解与实例---读取并显示图像文件 | JS Mix

    2019独角兽企业重金招聘Python工程师标准>>> FileReader详解与实例---读取并显示图像文件 | JS Mix. 转载于:https://my.oschina.ne ...

  8. linux 解压所有以zip结尾的文件_Linux下的压缩zip,解压缩unzip命令详解及实例

    摘自:https://www.cnblogs.com/yves0923/p/10965021.html Linux下的压缩解压缩命令详解及实例 实例:压缩服务器上当前目录的内容为xxx.zip文件 z ...

  9. Vue.js - Font Awesome字体图标的使用详解(vue-fontawesome库)

    Vue.js - Font Awesome字体图标的使用详解(vue-fontawesome库) Font Awesome 是一个十分优秀的第三方图标库,我之前也写过文章介绍如何在 html 页面中使 ...

最新文章

  1. Leangoo领歌敏捷项目管理工具新增测试管理功能
  2. pandas使用query函数删除dataframe中两个数据列加和小于某一特定值的数据行(removing rows based on multiple dataframe column value
  3. 【Java基础】对象拷贝
  4. 思科路由器交换机模拟软件_eNSP模拟器上学习华为三层交换机与路由器对接
  5. SAP 与 JSON 接口实施案例一
  6. phd or domain
  7. Oracle Quality --- Setup Collection Element and Collection Plan
  8. P3470 [POI2008]BBB-BBB【线段树,贪心】
  9. 第二章 寄存器基础概念
  10. Windows 安装 Redis 教程
  11. 计算机网络原理填空题
  12. JSK-134 求出现次数最多的字符【入门】
  13. 使用 IntelliTrace 调试应用程序
  14. 标准3层神经网络搭建Demo
  15. kotlin转java_Kotlin 与 Java 代码之间的转换
  16. 【电子技术基础(精华版)】整流与滤波电路
  17. Yann LeCun、Yoshua Bengio和Geoffrey Hinton的联合综述《Deep Learning》翻译
  18. 适配4G模块 EC20 使用ppp拨号上网
  19. 能测试快充真假的软件,ChargerLAB测试工具使用技巧:一键检测苹果数据线真伪...
  20. 用C语言编写高斯消元法解线性方程组

热门文章

  1. lnmp下论坛的搭建
  2. 诚邀各界人士共赏--2011年百度运维部迎新生晚会
  3. 软件测试常见的状态码,软件测试-面试总结
  4. 新生代农民工的露营装备清单
  5. yolov3 裁剪识别的目标,并将剪裁的目标图片保存到本地
  6. elasticSearch之ik分词器
  7. Flutter基础(三)Dart快速入门
  8. c++ union基本用法
  9. C++题目:米诺斯的迷宫
  10. 如何在VUE项目中使用svg图标