Javascript Youtube视频事件[在本地或其他情况下]未触发?
我有以下代码,几乎直接取自API,但事件不会触发。有什么想法吗?谢谢Javascript Youtube视频事件[在本地或其他情况下]未触发?,javascript,youtube,Javascript,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, firstScri
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");
}
回答:原来是因为我在本地测试,啊!但其他可能的原因请参见下文。尝试使用下面的代码,对我来说非常有效
//异步加载播放器api。
var tag=document.createElement('script');
tag.src=”http://www.youtube.com/player_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onYouTubePlayerAPIReady(){
player=新的YT.player('player'{
高度:“390”,
宽度:“640”,
videoId:'JW5meKfy3fY',
PlayerBars:{'autoplay':1,'rel':0,'showinfo':0,'egm':0,'showsearch':0,},
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
函数onPlayerReady(事件){
event.target.playVideo();
}
函数onPlayerStateChange(事件、元素){
//视频结束时
如果(event.data==YT.PlayerState.end){
//除掉那个球员
element.style.display=“无”;
}
}
我也在当地发展。。。。可能的原因有:1。在某些浏览器中,由于安全限制2的副作用,测试“本地”(加载文件而不通过)将不起作用。混合使用嵌入API(在这里声明一个iframe)和iframe API(在这里声明一个DIV并加载一些JS)。这些事件似乎只适用于后者。3.DIV上的ID与新YT.Player(…)呼叫4上的ID不匹配。未能在全局范围内定义onYouTubePlayerAPIReady,我很高兴OP只有一个问题。我必须通过这四个环节才能让它发挥作用。