项目要求系统必须全屏显示,并且顶部的全屏内容与非全屏内容不同。 开始工作
项目正在使用vue。 需要全屏插件。 我在网上找了screenfull.js。 安装后
$ NPM安装--save screen full
安装后,我们尝试引入项目,使其可以全屏显示。 我使用的chrome,不考虑IE9以下,第一步就完成了
第二个十字,需要监控全屏状态,但尝试后发现,isFullscreen的状态为全屏后为true,ESC退出全屏后状态没有变化,所以尝试了网络搜索。
浏览器故意不拦截ESC键,与网页加载完成后无法以编程方式全屏显示浏览器的原因相同,防止开发者恶意全屏显示
解决方案:
window.onresize=function (
if (! 检查完整() ) }
//要采取的行动
}
}
功能检查完整
varis full=document.full screen enabled|window.full screen|document.webkitisfullscreen|document.msfulllscreeen
//to fix : false|| undefined==undefined
if(isfull===undefined ) isFull=false;
返回is完整;
}
确定,知道原因后,添加到代码中进行onresize拦截事件。
完整的代码如下。
非全屏状态全屏状态importscreenfullfrom ' screen full '
导出默认值{
数据()。
返回{
is全屏幕: false
}
(,
methods: {
//*
*全屏事件
*/
屏幕完整() }
if (! screenfull.enabled ) {
this.$message({ ((
消息: ' yourbrowserdoesnotsupport!' ,
type: 'warning '
() )
返回假
}
screenfull.toggle (;
this.is全屏幕=true;
(,
//*
*是否全屏并按ESC键
*/
检查完整() }
varis full=document.full screen enabled|window.full screen|document.webkitisfullscreen|document.msfulllscreeen
//to fix : false|| undefined==undefined
if(isfull===undefined )
is满=false;
}
返回is完整;
}
(,
mounted () }
window.onresize=(
//监视是否在全画面按下了ESC
if (! this.checkFull () }
//在全屏中按esc键后执行的操作
this.is全屏幕=false;
}
}
}
}