YouTube onPlayerStateChange未触发

时间:2015-06-05 12:06:18

标签: jquery html youtube fancybox

我正在加载YouTube播放器API,如下所示 一旦我播放到我的fancybox中的youtube视频结束,我就试图发起一个事件。并显示一个弹出窗口。

这个代码我找到并尝试了但事件没有解雇

<!doctype html>
<html lang="en">
<body>
<a class="fancybox fancybox.iframe" id="vdo" href="http://www.youtube.com/embed?listType=playlist&list=PL590L5WQmH8f_0qlZ-tKrtbfw4n0jyHQ">Video #1</a>


<script>
// Fires whenever a player has finished loading
function onPlayerReady(event) {
    event.target.playVideo();
}

// Fires when the player's state changes.
count = 0;
        function onPlayerStateChange(event) {
            if(event.data == 0)
            {
                count++;
            }           
            if(count == 6)
            {
                $("#popup-wrapper-center").show();
            }
        }

// The API will call this function when the page has finished downloading the JavaScript for the player API
function onYouTubePlayerAPIReady() {

    // Initialise the fancyBox after the DOM is loaded
    $(document).ready(function() {
        $(".fancybox")
            .attr('rel', 'gallery')
            .fancybox({
                openEffect  : 'none',
                closeEffect : 'none',
                nextEffect  : 'none',
                prevEffect  : 'none',
                padding     : 0,
                margin      : 50,
                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': onPlayerStateChange
                        }
                    });
                }
            });


    });

}
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

将ID更改为视频而不是vdo