更多的“回答”不是“问题”,但没有发现这在其他地方,我在这里张贴。
我有困难初始化的iFrame API在IE和Firefox的所有版本,带有几分自定义实现。 基本上,它会载入API,但不会造成玩家的对象。
有点试验和错误之后,我终于想通了,它不工作,因为div
我是路过的对象ID有它的CSS可见性设置为'none'
。 一旦它被设置为'visible'
整个事情的工作。 从那以后,我尝试设置div
CSS来'display:none'
(应用程序所需的视频被隐藏,直到用户请求),这也造成了的iFrame API以失败默默(永不回叫'onPlayerReady'
)。
所以,长话短说,使用YouTube的iFrame API来初始化一个当div
要保持隐藏,直到后来,像使用绝对定位的CSS技术,直到你以后希望它推离屏幕。 此外,发现一旦玩家对象初始化和'onPlayerReady'
被称为你可以把显示器和关闭整天和预期都将仍然工作。
你应该让玩家conainer空如
<div class="myPlayerContainer"></div>
当你想要显示它只是其附加到容器:
$('#showVideoBtn').click(function(){
$('.myPlayerContainer').show().append('~ code of youtube iframe ~');
});
Yotam是正确的,看看下面:
HTML:
<button onclick="toggleYoutube();">show / hide</button>
<div id="youtube"></div>
JS(使用jQuery):
var visible = false;
function toggleYoutube() {
visible = !visible;
if ( visible ) {
$("#youtube").append( '<iframe id="video" width="640" height="360" src="http://www.youtube-nocookie.com/embed/cjvIeNt93nc?rel=0" frameborder="0" allowfullscreen></iframe>' );
} else {
$("#video").remove();
}
}
查看完整的代码在http://jsfiddle.net/wFVhT/2/