我无法在下面的代码工作。我将一个播放器放在页面上,并加载视频。这是预期的。然后,当用户单击其中一个时,我想播放许多其他视频的缩略图(此处仅显示两个)。这部分不起作用。我在控制台上收到一条错误消息,说ytplayer.loadvideobyid不是一个函数。我正在Firefox 26.0上进行测试。
<html>
<head>
</head>
<body>
<table width="900" align="center" border="0" cellpadding="0" cellspacing="1">
<tbody>
<tr>
<td>
<div id="ytplayer"></div>
<td>
</tr>
<tr>
<td>
<a href="javascript:void(0);" onclick="ytplayer.loadVideoById('tCnEH8MRrjE',0);"><img src="http://img.youtube.com/vi/tCnEH8MRrjE/hqdefault.jpg" width="176" height="132"></a>
</td>
</tr>
<tr>
<td>
<a href="javascript:void(0);" onclick="ytplayer.loadVideoById('lqdFrGFo6SQ',0);"><img src="http://img.youtube.com/vi/lqdFrGFo6SQ/hqdefault.jpg" width="176" height="132"></a>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
// Replace the 'ytplayer' element with an <iframe> and
// YouTube player after the API code downloads.
var player;
function onYouTubeIframeAPIReady()
{
player = new YT.Player('ytplayer',
{
height: '390',
width: '640',
videoId: 'tCnEH8MRrjE',
});
}
// Load the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
</script>
</body>
</html>
您将HTML元素("ytplayer"
)的ID与JavaScript变量(player
)的名称混淆。将ytplayer.loadVideoById(...)
更改为player.loadVideoById(...)
。
另外,您可以为所有这些都使用相同的符号(player
或ytplayer
)...