gpt4 book ai didi

iframe - youtube iframe api loadVideoById() 错误

转载 作者:行者123 更新时间:2023-12-04 11:28:30 25 4
gpt4 key购买 nike

我正在将 youtube 视频添加到公司网站,并希望它们显示在非闪存设备上。我一直在玩 youtube iframe API 并更新了他们的一个示例,以允许用户单击链接以更改 iframe 中的视频。修改后的代码是:

<!DOCTYPE HTML>
<html>
<body>
<div id="player"></div>
<script>
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 done = false;
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'JW5meKfy3fY',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(evt) {
evt.target.playVideo();
}
function onPlayerStateChange(evt) {
if (evt.data == YT.PlayerState.PLAYING && !done) {
setTimeout(stopVideo, 6000);
done = true;
}
}
function stopVideo() {
player.stopVideo();
}

function loadVideo(videoID) {
if(player) { player.loadVideoById(videoID); }
}

</script>

<a href="javascript:loadVideo('kGIjetX6TBk');">Click me to change video</a>

</body>
</html>

我唯一添加的是:
function loadVideo(videoID) {
if(player) { player.loadVideoById(videoID); }
}

这适用于 Safari、Chrome 和 Firefox,但不适用于 IE7、8 或 9。在 IE7 和 8 中,它返回错误“对象不支持此属性或方法”。

这是 API 的问题还是我做错了什么?

最佳答案

我有一个类似的问题,结果证明你不应该调用 YT.Player 对象上的任何方法(包括 loadVideoById )只要 onPlayerReady没有被调用。

做检查if(player) {...}还不够,Player对象将被创建,并且某些属性将已经可用,而您需要的方法不可用。

关于iframe - youtube iframe api loadVideoById() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9782301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com