2012-03-06 91 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"; 
    } 
}