【发布时间】:2013-12-03 13:52:52
【问题描述】:
有没有办法知道 youtube 播放器何时成功嵌入?我正在使用 iframe 嵌入,我想在播放器加载后执行一些操作。
【问题讨论】:
标签: javascript youtube youtube-api
有没有办法知道 youtube 播放器何时成功嵌入?我正在使用 iframe 嵌入,我想在播放器加载后执行一些操作。
【问题讨论】:
标签: javascript youtube youtube-api
我假设您正在谈论包含 iFrame 嵌入代码本身,而不是使用 javascript 嵌入它? (无论哪种方式,都没有太大区别。)为此,您需要使用 YouTube iFrame javascript 库,以便绑定到 iFrame 并了解其状态。
要加载库,请使用以下代码:
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
当 iFrame javascript 库成功注入后,它将调用 onYouTubeIframeAPIReady,因此如果您定义了该函数,您就可以知道 iFrame 绑定支持何时准备就绪。然后,在该函数中,您需要为 iframe 设置一个 YT.Player 对象:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', { // the first argument is the id of your iframe
events: {
'onReady': onPlayerReady
}
});
}
onReady 回调绑定到此处名为 onPlayerReady 的函数,因此最后一步就是定义该函数:
function onPlayerReady() {
alert('iframe is embedded and player is loaded!');
}
这里有一个jsfiddle 来演示。
【讨论】: