<template>    <video ref="myVideo" class="w-100 h-100" controls="controls" :src="videoUrl"></video></template> <script>export default {    name: 'video',     mounted() {        const myVideo = this.$refs.myVideo        this.$nextTick(() => {            myVideo.addEventListener('play', this._bindHandlerFull)            myVideo.addEventListener('ended', this._unbindHandlerFull)          })    },    methods:{        // bind        _bindHandlerFull() {          const myVideo = this.$refs.myVideo          console.log('开始播放')          this.launchFullscreen(myVideo)        },         // unbind        _unbindHandlerFull() {          console.log('播放完结')          //檢查瀏覽器是否處於全屏          if (            this.invokeFieldOrMethod(document, 'FullScreen') ||            this.invokeFieldOrMethod(document, 'IsFullScreen') ||            document.IsFullScreen          ) {            this.exitFullscreen()          }        },     // 反射调用    invokeFieldOrMethod(element, method) {      var usablePrefixMethod      ;['webkit', 'moz', 'ms', 'o', ''].forEach(function(prefix) {        if (usablePrefixMethod) return        if (prefix === '') {          // 无前缀,办法首字母小写          method = method.slice(0, 1).toLowerCase() + method.slice(1)        }        var typePrefixMethod = typeof element[prefix + method]        if (typePrefixMethod + '' !== 'undefined') {          if (typePrefixMethod === 'function') {            usablePrefixMethod = element[prefix + method]()          } else {            usablePrefixMethod = element[prefix + method]          }        }      })       return usablePrefixMethod    },     // 进入全屏    launchFullscreen(element) {      //此办法不能够在異步任務中執行,否則火狐無法全屏      if (element.requestFullscreen) {        element.requestFullscreen()      } else if (element.mozRequestFullScreen) {        element.mozRequestFullScreen()      } else if (element.msRequestFullscreen) {        element.msRequestFullscreen()      } else if (element.oRequestFullscreen) {        element.oRequestFullscreen()      } else if (element.webkitRequestFullscreen) {        element.webkitRequestFullScreen()      } else {        var docHtml = document.documentElement        var docBody = document.body        var videobox = document.getElementById('videobox')        var cssText = 'width:100%;height:100%;overflow:hidden;'        docHtml.style.cssText = cssText        docBody.style.cssText = cssText        videobox.style.cssText = cssText + ';' + 'margin:0px;padding:0px;'        document.IsFullScreen = true      }    },     // 退出全屏    exitFullscreen() {      if (document.exitFullscreen) {        document.exitFullscreen()      } else if (document.msExitFullscreen) {        document.msExitFullscreen()      } else if (document.mozCancelFullScreen) {        document.mozCancelFullScreen()      } else if (document.oRequestFullscreen) {        document.oCancelFullScreen()      } else if (document.webkitExitFullscreen) {        document.webkitExitFullscreen()      } else {        var docHtml = document.documentElement        var docBody = document.body        var videobox = document.getElementById('videobox')        docHtml.style.cssText = ''        docBody.style.cssText = ''        videobox.style.cssText = ''        document.IsFullScreen = false      }    }    }  } </script>