Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue.js 2-Vue youtube嵌入如何检测视频结束状态?_Javascript_Youtube Api_Vue.js_Youtube Javascript Api_Vuejs2 - Fatal编程技术网

Javascript Vue.js 2-Vue youtube嵌入如何检测视频结束状态?

Javascript Vue.js 2-Vue youtube嵌入如何检测视频结束状态?,javascript,youtube-api,vue.js,youtube-javascript-api,vuejs2,Javascript,Youtube Api,Vue.js,Youtube Javascript Api,Vuejs2,我在vuejs组件中使用Youtube API 这是我的密码: <script> export default { data() { return { videoId: 'HjxYvcdpVnU', videoLaunched: false, videoLoaded: false, videoRewatch: false, videoEnded: false } }, computed: {

我在vuejs组件中使用Youtube API

这是我的密码:

<script>
export default {
  data() {
    return {
      videoId: 'HjxYvcdpVnU',
      videoLaunched: false,
      videoLoaded: false,
      videoRewatch: false,
      videoEnded: false
    }
  },
  computed: {
    videoThumb: function () {
      return 'https://img.youtube.com/vi/' + this.videoId + '/maxresdefault.jpg';
    }
  },
  methods: {
    launchVideo() {
      this.videoLaunched = true;
      this.player.playVideo();
      document.getElementsByTagName('body')[0].classList.add('overlay');
    },
    ready(player) {
      fitvids();
      this.player = player;
      this.videoLoaded = true;
    },
    ended() {
      console.log('Ended');
    }
  } 
}
</script>

导出默认值{
数据(){
返回{
videoId:'HjxYvcdpVnU',
录影带:错,
视频加载:错误,
录像转播:错,
视频结束:错误
}
},
计算:{
videoThumb:函数(){
返回'https://img.youtube.com/vi/“+this.videoId+”/maxresdefault.jpg”;
}
},
方法:{
启动视频(){
this.videolaunted=true;
this.player.playVideo();
document.getElementsByTagName('body')[0].classList.add('overlay');
},
准备好(球员){
fitvids();
this.player=player;
this.videoLoaded=true;
},
结束(){
console.log('end');
}
} 
}
以及html:

<youtube :video-id="videoId" @ready="ready" @ended="ended" player-width="100%" 
  player-height="57" :player-vars="{ autoplay: 0, controls: 1, modestbranding: 1, showinfo: 0, rel: 0 }">
</youtube>

ended()方法没有触发,我不知道为什么

ready()方法工作正常,因此我不确定ended()方法上为什么没有触发console.log


我看不到文档中关于如何操作的示例。

作者给我写了一个示例,我已经按照以下步骤进行了操作:

如图所示,它应该与其他产品相同。作为一个问题提出这一问题尚未解决。我不知道如何回答您的问题,但您是否知道可以通过
doment.body
访问
body
元素?可能会帮助您编写更少的代码。@jeerbl好提示。谢谢。这里的一些细节也不错。