首页 文章

Youtube播放器未在IE 8和IE 10中触发onReady和onStateChange事件

提问于
浏览
4

我花了3天时间试图解决这个问题 . 很快,Youtube播放器不会在IE8和IE10中触发onReady和onStateChange事件 . 我在Firefox上进行了测试,但它确实有效 . 基本上,我正在开发一个使用WebView来托管html的Windows 8 metro应用程序,但它在WebView中也不起作用 .

视频加载和onYouTubeIframeAPIReady被调用,但这是关于它 . 下面是html代码 .

onPlayerReady和onPlayerStateChange函数中的警报消息不会显示在IE8和IE10中,但会显示在Firefox中 .

请帮忙.....

<!DOCTYPE html> 
<html> 
<body> 
<div id="player"></div> 
<script> 

alert('LOADING');
alert(GetUserAgent());

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

var player;
function onYouTubeIframeAPIReady() 
{ player = new YT.Player('player', { height: '315', width: '560',
 videoId: 'CreKbwMTZA8', playerVars: {'autoplay': 1}, 
events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange }  });  
alert('onYouTubeIframeAPIReady');
}

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

function onPlayerStateChange(event) 
{
alert('onPlayerStateChange');

if (event.data == YT.PlayerState.PLAYING) { window.external.notify('PLAYING');}
else if (event.data == YT.PlayerState.ENDED) {window.external.notify('ENDED');}
}

function setSize(width, height) 
{ player.setSize(width, height); 
}

function GetUserAgent() 
{
  return navigator.userAgent;
}

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

1 回答

  • 0

    现在这在IE8和IE10中都适用于我 .

    我在谷歌小组中读到,这是YouTube Iframe API中的一个旧版本,现在已修复 .

    Also: The API will only work properly in IE if you run it from a webserver!

相关问题