Javascript YouTube html5播放列表在IE9中不起作用

Javascript YouTube html5播放列表在IE9中不起作用,javascript,html,youtube,embed,playlists,Javascript,Html,Youtube,Embed,Playlists,我正在为youtube视频创建一个自定义html5播放器。我基于YouTube iframe API中的示例(https://developers.google.com/youtube/iframe_api_reference). 只要我在Web服务器上观看,所有用于暂停/播放/停止的javascript控件在Chrome/FF/IE9中都可以正常工作,但播放列表中的上一个视频/播放列表中的下一个视频控件仅在Chrome和FF中工作。在IE中,我得到一个“此视频当前不可用”(播放列表中的第一个视

我正在为youtube视频创建一个自定义html5播放器。我基于YouTube iframe API中的示例(https://developers.google.com/youtube/iframe_api_reference). 只要我在Web服务器上观看,所有用于暂停/播放/停止的javascript控件在Chrome/FF/IE9中都可以正常工作,但播放列表中的上一个视频/播放列表中的下一个视频控件仅在Chrome和FF中工作。在IE中,我得到一个“此视频当前不可用”(播放列表中的第一个视频仍然可以正常播放)。如果我尝试使用其ID(loadVideoById)切换到特定视频,也会发生这种情况

我可以在视频顶部的信息栏中看到,在我单击“播放列表中的下一个视频”后,它会循环播放所有视频的名称-我假设它尝试播放每个视频,但失败了

如果我尝试单独播放播放列表中的任何一个视频,效果很好

当我通过控制台/警报/任何东西返回播放列表中所有视频的数组时,所有预期的内容都在那里。代码如下:

<!doctype html>
<html>
    <head>
        <title>custom youtube player</title>
    </head>
    <body>
        <div id="player"></div>
        <br/>
        <a onclick="player.playVideo();" href="#">play</a>
        <br/>
        <a onclick="player.pauseVideo();" href="#">pause</a>
        <br/>
        <a onclick="player.stopVideo();" href="#">stop</a>
        <br/>
        <a id="playPrev" onclick="player.previousVideo();" href="#">previous video in playlist</a>
        <br/>
        <a id="playNext" onclick="player.nextVideo();" href="#">next video in playlist</a>
        <script type="text/javascript">
            var tag = document.createElement('script');
            tag.src = "//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: '390',
                    width: '640',
                    playerVars: { 'showinfo': 1, 'controls': 1},
                    videoId: 'ZrG0WsDuriM',
                    events: {
                        'onReady': onPlayerReady
                    }
                });
            }
            function onPlayerReady(event) {
                event.target.playVideo();
                event.target.loadPlaylist({listType: 'playlist', list: 'PL8D3EFFBB747B9769', suggestedQuality: 'small'});
            }
        </script>
    </body>
</html>

自定义youtube播放器





var tag=document.createElement('script'); tag.src=“//www.youtube.com/iframe_api”; var firstScriptTag=document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(标记,firstScriptTag); var播放器; 函数onyoutubeiframeapiredy(){ player=新的YT.player('player'{ 高度:“390”, 宽度:“640”, PlayerBars:{'showinfo':1,'controls':1}, videoId:'ZrG0WsDuriM', 活动:{ “onReady”:onPlayerReady } }); } 函数onPlayerReady(事件){ event.target.playVideo(); loadPlaylist({listType:'playlist',list:'PL8D3EFFBB747B9769',suggestedQuality:'small'}); }
对于任何发现这个问题的人来说,这个问题显然是YouTube上的一个bug,似乎已经解决了。

你还应该用CDATA包装你的javascript代码

<![CDATA[
// js goes here
]]>