【问题标题】:Close youtube video iframe after finished not working完成不工作后关闭 youtube 视频 iframe
【发布时间】:2015-11-12 20:18:46
【问题描述】:

我有一个 youtube iframe 视频,我想在它结束时关闭它。 这应该有效,但事实并非如此。 fancybox 启动并且视频正确显示,但没有出现 console.log。我做错了什么?

        $.fancybox({
          href: "https://www.youtube.com/embed/8CR-zM6jwD8?rel=0&autoplay=1",
          type: "iframe",
          beforeShow: function () {
              // Find the iframe ID
              var id = $.fancybox.inner.find('iframe').attr('id');
              // Create video player object and add event listeners
              var player = new YT.Player(id, {
                  events: {
                      'onStateChange': function (event) {
                        console.log('onStateChange fired');
                          if (event.data === 0) {
                              console.log('ended');
                              $.fancybox.close();
                          } // if
                      } // onStateChange
                  } // events
              }); // YT.Player

              loadPage();
          }, // beforeShow
      }); // fancybox

JSFIDDLE

【问题讨论】:

  • 嗨,请做个小提琴
  • @P.Frank 完成!谢谢大佬
  • 不错!请将您的解决方案发布给遇到相同问题的其他人
  • @P.Frank 我没有解决,我只是在JSFiddle中重现了问题

标签: javascript jquery iframe youtube


【解决方案1】:

onStateChange返回一个事件,但是不能直接访问。你也需要onReady。我删除了您的扩展视频的结尾autoplay=1 并替换为enablejsapi。现在工作正常

请尝试: http://jsfiddle.net/d6egj2sq/

【讨论】:

  • 太棒了!这行得通。为什么它也需要有onReady 事件? &enablejsapi=1&wmode=opaque 参数是什么以及为什么?他们是做什么的,为什么我需要他们来实现这个功能?
  • 如果您在 url 中添加自动播放,您的视频会自动播放,因为是一个参数,但不是 YT.player 播放此内容的人。 onReady 当您的 YT.player 完全收费的视频时获得。充电时,播放功能被激活。参数 ¤enablejsapi` 用于获取 api 响应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2011-11-24
  • 2012-04-07
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多