相关文章推荐
忐忑的爆米花  ·  AAAI 2022 | ...·  4 月前    · 
体贴的水煮肉  ·  QT 自定义绘图 - 知乎·  5 月前    · 

(1)使用screenfull来解决全屏操作

(2)利用监听事件,禁用F11操作的全屏,只有由页面“全屏”按钮才能出发全屏;

(3)利用监听事件,来改变isFullscreen的值,进而控制页面展示“全屏”图标,还是“退出全屏”图标

1、安装使用screenfull.js

npm install --save screenfull

2、在相应的组件引入screenful,我的js部分的代码如下:

<script>
import screenfull from 'screenfull'
export default {
  data() {
    return {
      isFullscreen: false // false非全屏状态、true全屏状态
  created() {
    // 监听事件
    window.addEventListener('resize', this.onresize)
    window.addEventListener('keydown', this.keydown)
  beforeDestroy() {
    // 取消监听事件
    window.removeEventListener('resize', this.onresize)
    window.removeEventListener('keydown', this.keydown)
  methods: {
    // 切换是否全屏
    toggleFullscreen(isFscreen) {
      if (!screenfull.enabled) {
        this.$message({
          message: 'you browser can not work',
          type: 'warning'
        return false
      screenfull.toggle()
      this.isFullscreen = isFscreen
    // 阻止F11默认事件
    keydown(event) {
      if (event.keyCode === 122) {
        event.preventDefault()
        event.returnValue = false
     * 响应屏幕变化事件,给isFullscreen赋值,标识是否全屏
     * IE中bug: 调试器打开,且与页面不分离时 -- 无效
     * **/
    onresize(event) {
      // 利用屏幕分辨率和window对象的内高度来判断兼容IE
      let winFlag = window.innerHeight === window.screen.height
      // 利用window全屏标识来判断 -- IE无效
      let isFull = window.fullScreen || document.webkitIsFullScreen
      if (isFull === undefined) {
        this.isFullscreen = winFlag
      } else {
        this.isFullscreen = winFlag || isFull
      console.log('winFlag || isFull', winFlag, isFull)
</script>