在写前端网页或者做前端小游戏的时候,为了提高用户体验,需要请求网页全屏显示(这点对于手机端的页游很重要),这个需求可以通过JavaScript实现。
我们要实现的效果如下:屏幕内除了网页没有任何其他信息。
我们首先要向浏览器发出请求,由于不同浏览器所提供的请求接口不同,我们把这些请求都罗列上,最终写出这样的一个函数:
function requestFullScreen(element) {
var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen;
if (requestMethod) {
requestMethod.call(element);
} else if (typeof window.ActiveXObject !== "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null) {
wscript.SendKeys("{F11}");
}
}
}
接下来就是调用函数了,你可能想要页面加载进来就是全屏的,接下来你会用
onload(function () {
requestFullScreen(document.documentElement)
})
这是不行的,浏览器一般规定,请求全屏的事件只能由用户发出,即是说用户可以通过点击事件实现全屏,也可以通过其他事件,但唯独onload这种,并非用户给出的事件,浏览器不认为是用户请求。
正确的方法是:
$('#unlock').click(function () {
requestFullScreen(document.documentElement);
})
这样是允许的,至于怎样使网页实现好的效果,你可以在主页面之前加一个登录页面,点击登录实现全屏并移除登陆页。
示例代码:
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<div style="margin:0 auto;height:600px;width:700px;">
<button id="btn">js控制页面的全屏展示和退出全屏显示</button>
<div id="content" style="margin:0 auto;height:500px;width:700px; background:#ccc;" >
<h1>js控制页面的全屏展示和退出全屏显示</h1>
</div>
</div>
</body>
<script language="JavaScript">
document.getElementById("btn").onclick=function(){
var elem = document.getElementById("content");
requestFullScreen(elem);
};
function requestFullScreen(element) {
var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen;
if (requestMethod) {
requestMethod.call(element);
} else if (typeof window.ActiveXObject !== "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null) {
wscript.SendKeys("{F11}");
}
}
}
</script>
</html>