js不能实现自动全屏功能,只能通过用户事件触发(可以是鼠标事件,键盘事件等)。
否则出现以下错误:
不能自动进入全屏状态,这是浏览器的一种保护措施。
只能通过点击事件实现F11全屏(调用Fkey),方法如下:
- 第一种
var flag=false;
function Fkey(){
if(!flag){
var el = document.documentElement,
rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullscreen;
if(typeof rfs != "undefined" && rfs) {
rfs.call(el);
flag=true;
}
return;
}else {
var el= document,
cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen;
if (typeof cfs != "undefined" && cfs) {
cfs.call(el);
flag=false;
}
return;
}
}
- 第二种(和第一种差不多,第一种更简便)
function Fkey() {
if ((document.fullScreenElement !== undefined && document.fullScreenElement === null)
|| (document.msFullscreenElement !== undefined && document.msFullscreenElement === null)
|| (document.mozFullScreen !== undefined && !document.mozFullScreen)
|| (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen)) {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
} else if (document.documentElement.msRequestFullscreen) {
document.documentElement.msRequestFullscreen();
}
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}
- 第三种(根据window.open可以模拟出差不多的全屏页面)
window.open没有办法实现F11的全屏效果,顶多就是像一个对话框全屏,只是不显示上面的窗口条目。
window.open("notice.html","_blank",'width='+ (window.screen.availWidth-10)+',height='+(window.screen.availHeight-30)+ ',top=0,left=0,resizable=yes,status=yes,menubar=no,scrollbars=yes');
样式如下图所示:
有实现自动全屏的方法,请大佬留言指教一下。