解决VUE在浏览器全屏下监听不到Esc键盘事件
实测可以在谷歌、火狐、360 浏览器使用
解决了在浏览器全屏下监听不到键盘Esc事件
解决了取消全屏和全屏的同步问题,ESC按键下可以同步
以下是完整的代码,
//
data() {return {isFullscreen: false,}
},
created(){let that = thiswindow.onresize = function(){if(!that.checkFull()){// 退出全屏后要执行的动作console.log("退出全屏")}}
},methods:{checkFull() {//判断浏览器是否处于全屏状态 (需要考虑兼容问题)//火狐浏览器let isFull = document.mozFullScreen ||document.fullScreen ||//谷歌浏览器及Webkit内核浏览器document.webkitIsFullScreen ||document.webkitRequestFullScreen ||document.mozRequestFullScreen ||document.msFullscreenEnabledif (isFull === undefined) {isFull = false}return isFull;},// 全屏&退出全屏toggleFullSceen() {let doc = document.documentElementif (this.isFullScreen) {// 退出全屏if (document.webkitExitFullscreen) {//Chrome等document.webkitExitFullscreen()} else if (document.mozCancelFullScreen) {//FireFoxdocument.mozCancelFullScreen()} else if (document.exitFullscreen) {//W3Cdocument.exitFullscreen()} else if (document.msExitFullscreen) {//IE11document.msExitFullscreen()}} else {if (doc.webkitRequestFullScreen) {// chorme等doc.webkitRequestFullScreen()} else if (doc.mozRequestFullScreen) {// FireFoxdoc.mozRequestFullScreen()} else if (doc.requestFullscreen) {// W3Cdoc.requestFullscreen} else if (doc.msRequestFullscreen) {//IE11doc.msRequestFullscreen()}}this.isFullScreen = !this.isFullScreen},
}
参考资料:https://www.it610.com/article/1296862890581630976.htm
改良后的代码:
mounted() {//初始化全屏状态this.isFullScreen = this.checkFull()// 监听F11按键事件window.addEventListener('keydown', this.keydowns, true)// ESC按键事件无法监听,监听窗口变化事件window.onresize = () => {this.isFullScreen = this.checkFull()}},
method方法:
//判断浏览器是否处于全屏状态 (需要考虑兼容问题)checkFull() {//火狐浏览器let isFull =document.mozFullScreen ||document.fullScreen ||//谷歌浏览器及Webkit内核浏览器document.webkitIsFullScreen ||document.webkitRequestFullScreen ||document.mozRequestFullScreen ||document.msFullscreenEnabledreturn !!isFull},// 全屏&退出全屏toggleFullSceen() {let doc = document.documentElementif (this.isFullScreen) {// 退出全屏if (document.webkitExitFullscreen) {//Chrome等document.webkitExitFullscreen()} else if (document.mozCancelFullScreen) {//FireFoxdocument.mozCancelFullScreen()} else if (document.exitFullscreen) {//W3Cdocument.exitFullscreen()} else if (document.msExitFullscreen) {//IE11document.msExitFullscreen()}} else {if (doc.webkitRequestFullScreen) {// chorme等doc.webkitRequestFullScreen()} else if (doc.mozRequestFullScreen) {// FireFoxdoc.mozRequestFullScreen()} else if (doc.requestFullscreen) {// W3Cdoc.requestFullscreen} else if (doc.msRequestFullscreen) {//IE11doc.msRequestFullscreen()}}this.isFullScreen = !this.isFullScreen},keydowns(event) {// 监听按键f11if (event.keyCode === 122) {event.returnValue = falsethis.toggleFullSceen() //触发全屏的按钮}},
解决VUE在浏览器全屏下监听不到Esc键盘事件相关推荐
- esc键退出全屏 vue_解决了VUE在浏览器全屏下监听不到Esc键盘事件
说明: 实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() { retu ...
- 【Vue实用功能】Vue实现浏览器全屏退出全屏
Vue实现浏览器全屏 vue代码 <v-btn class="ml-2" @click="fullScreen" v-show="!is_sma ...
- vue中浏览器全屏和退出全屏
1.首先要判断浏览器类型 (是否IE),来控制是否展示功能,在计算属性中判断: computed: {showFullScreenBtn () {return window.navigator.use ...
- vue中实现全屏以及对退出全屏的监听
前言: vue中实现默认进来页面,某个div全屏,并监听退出全屏的次数,当退出全屏次数达到5的时候跳转到别的页面. 目录: 实现步骤: 1.页面上在你想要的容器上加上id = 'con_lf_top_ ...
- js 进入浏览器全屏(F11效果)、退出全屏、指定元素全屏、判断当前是否全屏、监听浏览器全屏事件、定义全屏时的css样式(全屏伪类)
各部分功能代码详见注释: <template><div><button v-if="!ifFullScreen" @click="fullS ...
- vue实现浏览器全屏以及退出全屏
在src/utils/util.js中加入下面代码块 import Vue from 'vue' const util = Vue.prototype.util = {} // 切换全屏 util.f ...
- JS控制全屏,监听退出全屏事件
先放個官方 Web API 接口 链接:全屏 API 网上基本都是这种: //全屏功能document.getElementById("ck_buts").onclick = fu ...
- js控制网页全屏,监听退出全屏动作
//控制全屏方法 function requestFullScreen(element) {var requestMethod = element.requestFullScreen || //W3C ...
- vuejs监听苹果iphone手机键盘事件
在iphone手机中,vue提供的keyup事件是不能监听iphone键盘的,但是h5提供的input事件可以做到. 只需要向下面这样处理,就可以解决iphone不响应键盘事件的bug <tem ...
最新文章
- iOS 即时聊天键盘处理
- 吸烟检测 yolov5开源推荐
- MySQL 中ANALYZE [LOCAL NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
- 怎么重置blockinput的锁_OPPOA9锁屏密码忘了怎么办? OPPO忘记锁屏密码的解决办法...
- GetModuleHandle
- XML入门经典(第4版)pdf
- 白班夜班不是你想做就做,一切都得听安排
- 自动驾驶系统的学习笔记
- Python 进阶——标准散列机制
- JavaScript事件委托的技术原理
- 通用技术和信息技术合格考知识点_通用技术学业水平考试必背知识点
- AVI视频格式的Dvix和Xvid两种不同编码的区别
- 被syn攻击了怎么办,如何预防服务器被被syn攻击
- 深入浅出!二叉树详解,包含C语言代码
- Oracle 学习之建表、索引、同义词以及SQL优化
- 高校计算机专业实践教学改革研究,民族高校计算机专业实践教学改革
- return function和return function()的区别
- Centos6.5离线安装中文输入法
- tomcat环境变量设置
- 如何区分电脑上的硬件和软件?