js全屏的实现
废话不多说直接上代码吧!
HTML部分:
<!DOCTYPE html>
<html lang="en" id="Content">
<head>
<meta charset="UTF-8">
<title>全屏</title>
</head>
<body>
<ul>
<li>
<a id="BtnFullOpen" href="javascript:void(0);" title="按“F11”进入全屏模式">
<i class="ace-icon fa fa-arrows-alt"></i>全屏查看
</a>
<a id="BtnFullQuite" href="javascript:void(0);" title="按“F11”关闭全屏模式" style="display:none;">
<i class="ace-icon fa fa-arrows-alt"></i>全屏关闭
</a>
</li>
<li>2</li>
<li>3</li>
<li>5</li>
</ul>
</body>
</html>
html部分主要是申明全屏的DOM对象——html标签。
JS部分:
//获取需要的标签,并添加事件
var oBtnFullOpen = document.getElementById('BtnFullOpen');
var oContent = document.getElementById('Content');
oBtnFullOpen.onclick = function() {
fullScreen(oContent);
oBtnFullQuite.setAttribute("style", "display:block");
oBtnFullOpen.setAttribute("style", "display:none");
}
var oBtnFullQuite = document.getElementById('BtnFullQuite');
oBtnFullQuite.onclick = function() {
exitFullScreen(oContent);
oBtnFullQuite.setAttribute("style", "display:none");
oBtnFullOpen.setAttribute("style", "display:block");
};
//全屏及退出全屏方法
function fullScreen(el) {
var 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(el) {
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}");
}
}
}
代码没什么难度,这里主要用到的就是js的 Element.requestFullscreen()方法,异步请求使得Element(该元素)全屏显示。
不过Element.requestFullscreen()不能保证该元素被设置为全屏模式,如果允许该元素进入全屏模式,document将接受到fullscreenchange event事件;如果不允许,则document将接受fullscreenerror event事件。
所以在调用Element.requestFullScreen()前,可建立 fullscreenchange和fullscreenerror 的事件处理,将方便调试是否成功请求全屏模式。
最后就是要注意浏览器的兼容性问题:
cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen,
wscript;