Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 YouTube onStateChange事件工作不正常_Javascript_Jquery_Api_Iframe_Youtube - Fatal编程技术网

Javascript YouTube onStateChange事件工作不正常

Javascript YouTube onStateChange事件工作不正常,javascript,jquery,api,iframe,youtube,Javascript,Jquery,Api,Iframe,Youtube,我想知道为什么YouTube onPlayerStateChange不能正常工作 在这种情况下,当youtube视频结束时,我没有收到任何警告消息(或任何其他事件) 有什么想法吗 <!doctype html> <html lang="en"> <body> <iframe src=""></iframe> <script src="js/jquery.js"></script> <script src

我想知道为什么YouTube onPlayerStateChange不能正常工作

在这种情况下,当youtube视频结束时,我没有收到任何警告消息(或任何其他事件)

有什么想法吗

<!doctype html>

<html lang="en">
<body>

<iframe src=""></iframe>
<script src="js/jquery.js"></script>
<script src="http://www.youtube.com/iframe_api"></script>
<script>    
function onPlayerStateChange(event) {
    switch(event.data) {
        case YT.PlayerState.ENDED:
            alert('VIDEO IS ENDED'); // <<<--- THIS IS NOT WORKING
            break;
    }
}

jQuery(document).ready(function($) {
    var vidId = 'uIv6u7pdR5I';
    $('iframe').attr('src', "https://youtube.googleapis.com/v/" + vidId);
        new YT.Player('player_'+vidId, {
            events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
            },
            playerVars: { autohide: 1, showinfo: 0 }
        });
});
</script>
</body>
</html>

函数onPlayerStateChange(事件){
开关(事件数据){
案例YT.PlayerState.ENDED:

警报(“视频已结束”);//如果您按照以下说明使用Youtube api,它似乎可以正常工作:

例如,类似这样的:

<!doctype html>

<html lang="en">
<body>

<div id="player"></div>
<script src="http://www.youtube.com/iframe_api"></script>
<script>
function onPlayerStateChange(event) {
    switch(event.data) {
        case YT.PlayerState.ENDED:
            alert('VIDEO IS ENDED'); // <<<--- THIS IS WORKING
            break;
    }
}

var player;
function onYouTubeIframeAPIReady() {
    var vidId = 'uIv6u7pdR5I';
       player= new YT.Player('player', {
            videoId: vidId,
            events: {
//                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
            },
            playerVars: { autohide: 1, showinfo: 0 }
        });
}


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

函数onPlayerStateChange(事件){
开关(事件数据){
案例YT.PlayerState.ENDED:

提醒(‘视频结束’);//太好了!非常感谢!