js控制浏览器全屏

HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用。先看常见的API

element.requestFullScreen()

作用:请求某个元素element全屏

Document.getElementById(“myCanvas”).requestFullScreen()

这里是将其中的元素ID去请求fullscreen

退出全屏

document.cancelFullScreen()

Document.fullScreen

如果用户在全屏模式下,则返回true

document.fullScreenElement

返回当前处于全屏模式下的元素

   下面的代码是开启全屏模式:

?


1

2

3

4

5

6

7

8

9

function fullScreen(element) {

  if(element.requestFullScreen) {

  element.requestFullScreen();

 } else if(element.webkitRequestFullScreen ) {

   element.webkitRequestFullScreen();

  } else if(element.mozRequestFullScreen) {

  element.mozRequestFullScreen();

 }

 }

    下面的代码就是整个页面调用全屏模式

不过老实说,FULL SCREEN有个问题,容易造成欺骗,比如在
http://feross.org/html5-fullscreen-api-attack/中,其中就有一个很好的DEMO,去欺骗了,比如某个链结写的是http://www.bankofamerica.com,大家以为是美国银行,一点进去,因为使用了全屏幕API,就会欺骗到人

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

$(‘html‘).on(‘click keypress‘, ‘a‘, function(event) {

  // 不响应真正的A HREF点击事件

 event.preventDefault();

  event.stopPropagation();

  // Trigger fullscreen

  if (elementPrototype.requestFullscreen) {

   document.documentElement.requestFullscreen();

  } else if (elementPrototype.webkitRequestFullScreen) {

   document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);

  } else if (elementPrototype.mozRequestFullScreen) {

   document.documentElement.mozRequestFullScreen();

  } else {

   //

  }

  //显示假的UI

  $(‘#menu, #browser‘).show();

  $(‘#target-site‘).show();

 });

下面给大家介绍JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍

浏览器全屏模式的启动函数requestFullscreen仍然需要附带各浏览器的js方言前缀,相信下面这段代码需要你花大量的搜索才能凑齐:

代码如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

// 判断各种浏览器,找到正确的方法

function launchFullscreen(element) {

 if(element.requestFullscreen) {

  element.requestFullscreen();

 } else if(element.mozRequestFullScreen) {

  element.mozRequestFullScreen();

 } else if(element.webkitRequestFullscreen) {

  element.webkitRequestFullscreen();

 } else if(element.msRequestFullscreen) {

  element.msRequestFullscreen();

 }

}

// 启动全屏!

launchFullScreen(document.documentElement); // 整个网页

launchFullScreen(document.getElementById("videoElement")); // 某个页面元素

对你想要全屏显示的页面元素调用全屏方法,浏览器窗口就会变成全屏,但会先请求用户允许全屏模式。要注意,用户很有可能会拒绝全屏模式。如果用户运行全屏模式,则浏览器的工具条等按钮菜单都会隐藏,你的页面会覆盖整个屏幕。

退出全屏模式

这个exitFullscreen方法(也需要加浏览器前缀)会让浏览器退出全屏模式,变成正常模式。

代码如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

// 判断浏览器种类

function exitFullscreen() {

 if(document.exitFullscreen) {

  document.exitFullscreen();

 } else if(document.mozCancelFullScreen) {

  document.mozCancelFullScreen();

 } else if(document.webkitExitFullscreen) {

  document.webkitExitFullscreen();

 }

}

// 退出全屏模式!

exitFullscreen();

需要注意的是,exitFullscreen只能由document对象调用,而不是启动全屏时传入的对象。

全屏属性和事件

不幸的是,全屏属性和事件的相关方法也需要添加浏览器前缀,但我相信很快就不需要这样做了。

1.document.fullScreenElement: 全屏显示的网页元素。
2.document.fullScreenEnabled: 判断当前是否处于全屏状态。

fullscreenchange事件会在启动全屏或退出全屏时触发:

代码如下:

?


1

2

var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;

var fullscreenEnabled = document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled;

你仍然可以使用上面判断浏览器种类的方法给这个事件加上前缀。

全屏样式CSS

各种浏览器都提供了一个非常有用的全屏模式时的css样式规则:

 代码如下::

?


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

-webkit-full-screen {

 /* properties */

}

:-moz-full-screen {

 /* properties */

}

:-ms-fullscreen {

 /* properties */

}

:full-screen { /*pre-spec */

 /* properties */

}

:fullscreen { /* spec */

 /* properties */

}

/* deeper elements */

:-webkit-full-screen video {

 width: %;

 height: %;

}

/* styling the backdrop*/

::backdrop {

 /* properties */

}

::-ms-backdrop {

 /* properties */

}

有些情况下,WebKit样式会出现一些问题,你最好把这些样式保持简洁。

这些全屏API都超级的简单,而且超级的有用。我第一次是在MDN‘s BananaBread demo中看到这个API的,那是一个枪击游戏,正好需要全屏化,它使用了事件监听来检测全屏状态。记住这些好用的API,需要的时候可以顺手拈来。

function fullScreen() {
var el = document.documentElement,
rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen,
wscript;

if(typeof rfs != "undefined" && rfs) {
rfs.call(el);
return;
}

if(typeof window.ActiveXObject != "undefined") {
wscript = new ActiveXObject("WScript.Shell");
if(wscript) {
wscript.SendKeys("{F11}");
}
}
}

function exitFullScreen() {
var el = document,
cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen,
wscript;

if (typeof cfs != "undefined" && cfs) {
cfs.call(el);
return;
}

if (typeof window.ActiveXObject != "undefined") {
wscript = new ActiveXObject("WScript.Shell");
if (wscript != null) {
wscript.SendKeys("{F11}");
}
}
}

原文地址:https://www.cnblogs.com/ckAng/p/9298196.html

时间: 2024-10-23 18:19:55

js控制浏览器全屏的相关文章

用html5 js实现浏览器全屏

项目中需要将后台浏览器的窗口全屏,也就是我们点击一个按钮要实现按F11全屏的效果. 在HTML5中,W3C制定了关于全屏的API,就可以实现全屏幕的效果,也可以让页面中的图片,视频等全屏目前只有google chrome 15 +, safri5.1+,firfox10+,IE11支持 全屏 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 var docElm = document.documentElement; //W3C  if (docElm.re

[JavaScript] 用html5 js实现浏览器全屏

项目中需要将后台浏览器的窗口全屏,也就是我们点击一个按钮要实现按F11全屏的 效果. 在HTML5中,W3C制定了关于全屏的API,就可以实现全屏幕的效果,也可以 让页面中的图片,视频等全屏目前只有google chrome 15 +,safri5.1+,firfox10+,IE11支持 全屏: var docElm = document.documentElement; //W3C   if (docElm.requestFullscreen) {       docElm.requestFu

html5 js实现浏览器全屏

全屏 var docElm = document.documentElement; //W3C if (docElm.requestFullscreen) { docElm.requestFullscreen(); } //FireFox else if (docElm.mozRequestFullScreen) { docElm.mozRequestFullScreen(); } //Chrome等 else if (docElm.webkitRequestFullScreen) { docE

js 实现浏览器全屏效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>quanping</title> </head> <body> <div id="div" onclick="fullScreen()">全屏</div> <div

JS IE浏览器全屏代码

<html> <head> <title>test</title> <script language="JavaScript"> function Fkey(){ var WsShell = new ActiveXObject('WScript.Shell') WsShell.SendKeys('{F11}'); } </script> </head> <body> <a href=&

兼容IE浏览器的js浏览器全屏代码

众所周知,IE是个奇葩的浏览器,但是由于用户量很大,开发者还是不得不为IE考虑一下,于是,各种浏览器相关的操作,都要多一个特别的判断——专门针对IE浏览器的判断,这里的全屏也不例外.看代码: function fullScreen() { var el = document.documentElement; var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.m

浏览器全屏之requestFullScreen全屏与F11全屏

一.简介 浏览器全屏有两种方式,一种是HTML5新增的requestFullscreen全屏,另一种是摁F11实现的全屏,本文将详解两种全屏的特点以及其实现. 二.requestFullscreen全屏 1.判断是否支持全屏 通过判断元素的requestFullscreen函数是否存在与document.fullscreenEnabled是否为True判断浏览器是否支持全屏或启用全屏,兼容写法为 1 function supportfull(){ 2 var requestFullscreen

jQuery高性能跨浏览器全屏幻灯片特效插件

Nex是一款效果炫酷的.高性能的跨浏览器全屏幻灯片特效jQuery插件.该幻灯片插件允许你嵌入图片.视频,甚至是谷歌地图.该幻灯片提供了7组共34种不同的效果,可以使你适用于任何场景下使用. 它的特点有: 幻灯片外观可以自定义 优化速度 支持移动触摸设备 支持键盘导航 支持选择各种Pattern 对SEO优化十分友好 10种类型效果:Fade, Slide [left,right,top,bottom], Zoom, Skew, Rotate, Random, None 5种颜色主题:ameth

Js广告_全屏漂浮广告

<!DOCTYPE HTML> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Js广告_全屏漂浮广告</title> <style type="text/css"> div#roll{wid