//mounted中
//本来想直接禁掉esc的键盘按下的默认行为的,但是浏览器会有个提示,并且百度看了众多解决方案,这个提示貌似不好去掉
// if (navigator.keyboard && navigator.keyboard.lock) {
// // 禁用esc退出全屏
// navigator.keyboard.lock(['Escape'])
// } else {
// console.log('您的浏览器上不支持该功能')
// }
//这个方式去监听F11,会有监听不到的情况
// document.onkeydown = (e) => {
// console.log('e: ', e)
// if (e.code === 'F11') e.preventDefault()
// }
window.addEventListener('keydown', function(event) {
//禁掉F11的全屏的默认事件,不会禁止F11的退出全屏
const e = event || window.event
if (e && e.keyCode === 122) {
e.preventDefault()
}
})
document.addEventListener('fullscreenchange', () => {
this.isOpenAll = !this.isOpenAll
//这些监听,可以监听到esc按键按下导致的全屏变化,但是监听不到F11的打开全屏的变化,会自动调用fullScreenEvent方法
})
document.addEventListener('mozfullscreenchange', () => {
this.isOpenAll = !this.isOpenAll
})
document.addEventListener('webkitfullscreenchange', () => {
this.isOpenAll = !this.isOpenAll
})
document.addEventListener('msfullscreenchange', () => {
this.isOpenAll = !this.isOpenAll
})
//methods里面
fullScreenEvent() {
//这个方法名就叫这个名字,不要取别的名字
if (!this.isOpenAll) {
const box = document.documentElement
if (box.RequestFullScreen) {
box.RequestFullScreen()
} else if (box.requestFullscreen) {
box.requestFullscreen()
} else if (box.mozRequestFullScreen) {
box.mozRequestFullScreen()
} else if (box.msRequestFullscreen) {
box.msRequestFullscreen()
} else if (box.oRequestFullscreen) {
box.oRequestFullscreen()
} else if (box.webkitRequestFullscreen) {
box.webkitRequestFullScreen()
}
} else {
const el = document
if (el.exitFullscreen) {
el.exitFullscreen()
} else if (el.mozCancelFullScreen) {
/* Firefox */
el.mozCancelFullScreen()
} else if (el.webkitExitFullscreen) {
/* Chrome, Safari and Opera */
el.webkitExitFullscreen()
} else if (el.msExitFullscreen) {
/* IE/Edge */
el.msExitFullscreen()
}
}
}
版权声明:本文为wangsiyisiyi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。