2012-03-06 111 views
4

回答:原来是因为我在本地测试,真的!Youtube视频事件没有解雇

我有以下代码,几乎直接从API中获取,但事件不会触发。有任何想法吗?谢谢。

var tag = document.createElement('script'); 
    tag.src = "http://www.youtube.com/player_api"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

    var player; 
    function onYouTubePlayerAPIReady() { 
    player = new YT.Player('player', { 
     height: '250', 
     width: '300', 
     videoId: 'u1zgFlCw8Aw', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 

    function onPlayerReady(event) { 
    alert("Ready"); 
    event.target.playVideo(); 
    } 

    function onPlayerStateChange(event) { 

     alert("State Changed"); 

    } 
+0

我也被本地开发.... *捂脸* – 2013-12-10 22:01:54

回答

-1

尝试使用下面的代码,完全适用于我

<div id="player"></div> 
<script> 
//Load player api asynchronously. 
var tag = document.createElement('script'); 
tag.src = "http://www.youtube.com/player_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
var player; 
function onYouTubePlayerAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     videoId: 'JW5meKfy3fY', 
     playerVars:{'autoplay':1, 'rel':0, 'showinfo':0, 'egm':0, 'showsearch':0,}, 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
} 
function onPlayerReady(event) { 
    event.target.playVideo(); 
} 
function onPlayerStateChange(event,element) { 
    //When the video has ended 
    if (event.data == YT.PlayerState.ENDED) { 
     //Get rid of the player 
     element.style.display = "none"; 
    } 
}