JS实现浏览器全屏和退出全屏

简介:

   测试环境:

    【操作系统】: win7 64位

    【IE】:IE9

    【FireFox】: FireFox 29

    【Chrome】: Chrome 34

    众所周知,IE是个奇葩的浏览器,但是由于用户量很大,开发者还是不得不为IE考虑一下,于是,各种浏览器相关的操作,都要多一个特别的判断——专门针对IE浏览器的判断,这里的全屏也不例外。看代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function  fullScreen() {
   var  el = document.documentElement;
   var  rfs = el.requestFullScreen || el.webkitRequestFullScreen || 
       el.mozRequestFullScreen || el.msRequestFullScreen;
   if ( typeof  rfs !=  "undefined"  && rfs) {
     rfs.call(el);
   else  if ( typeof  window.ActiveXObject !=  "undefined" ) {
     //for IE,这里其实就是模拟了按下键盘的F11,使浏览器全屏
     var  wscript =  new  ActiveXObject( "WScript.Shell" );
     if (wscript !=  null ) {
         wscript.SendKeys( "{F11}" );
     }
   }
}
function  exitFullScreen() {
   var  el = document;
   var  cfs = el.cancelFullScreen || el.webkitCancelFullScreen || 
       el.mozCancelFullScreen || el.exitFullScreen;
   if ( typeof  cfs !=  "undefined"  && cfs) {
     cfs.call(el);
   else  if ( typeof  window.ActiveXObject !=  "undefined" ) {
     //for IE,这里和fullScreen相同,模拟按下F11键退出全屏
     var  wscript =  new  ActiveXObject( "WScript.Shell" );
     if (wscript !=  null ) {
         wscript.SendKeys( "{F11}" );
     }
   }
}

    下面是个简单的例子(假设上面的代码保存在script.js文件中):在两个按钮中调用这两个函数即可实现:

?
1
2
3
4
5
6
7
8
9
10
11
< html >
< head >
< script  type = "text/javascript"  src = "script.js" ></ script >
</ head >
< body >
< div  style = "margin-top:50px" <!-- 设置margin-top是为了查看IE全屏前后的区别 -->
   < input  type = "button"  value = "FullScreen"  onclick = "fullScreen()"  />
   < input  type = "button"  value = "ExitFullScreen"  onclick = "exitFullScreen()"  />
</ div >
</ body >
</ html >

    话不多说,先看火狐:全屏前

    

    全屏后(会出现相应的提示信息):

    

    再看看谷歌:全屏前:

    

    全屏后(也有相应的提示):

    

    最后看看奇葩的IE:全屏前:


    点击【FullScreen】后,浏览器下方会出现下面的提示:


    点击【允许阻止的内容】,再点击【FullScreen】会出现下面的警告:


    点击【是】,此时浏览器会全屏,如下图:

    上图中,IE已经全屏,还显示地址栏,是因为我把光标放在了屏幕的顶端,导致地址栏下滑,于是按钮上方50px的间隔也被遮住了。这也是为什么在代码中设置margin-top:50px的原因。把光标移开,浏览器地址栏自动上滑消失。如下图:


    到此,几种主流的浏览器全屏已经测试完毕。

目录
相关文章
|
7月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
235 23
|
10月前
|
Web App开发 前端开发 JavaScript
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
2015年,JavaScript之父Brendan Eich再次创业,推出Brave浏览器和加密货币Basic Attention Token(BAT),旨在颠覆传统广告行业。Brave屏蔽广告、保护隐私,加载速度快;BAT则通过奖励机制让用户、内容创作者和广告主三方受益。尽管面临用户习惯和巨头竞争的挑战,Brave已拥有超4000万月活跃用户,成为全球增长最快的隐私浏览器,引领Web3生态发展。
374 22
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
294 63
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
382 58
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
328 57
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
208 5
在浏览器执行js脚本的两种方式
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
1672 1
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
2286 1
|
机器学习/深度学习 人工智能 前端开发
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库,使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析,我们可以使用预先训练好的模型来识别文本中的积极、消极或中性情感。
452 4
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28

热门文章

最新文章