我花了 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>