在Internet Explorer和Firefox的YouTube API的IFrame(YouT

2019-08-05 12:12发布

更多的“回答”不是“问题”,但没有发现这在其他地方,我在这里张贴。

我有困难初始化的iFrame API在IE和Firefox的所有版本,带有几分自定义实现。 基本上,它会载入API,但不会造成玩家的对象。

有点试验和错误之后,我终于想通了,它不工作,因为div我是路过的对象ID有它的CSS可见性设置为'none' 。 一旦它被设置为'visible'整个事情的工作。 从那以后,我尝试设置div CSS来'display:none' (应用程序所需的视频被隐藏,直到用户请求),这也造成了的iFrame API以失败默默(永不回叫'onPlayerReady' )。

所以,长话短说,使用YouTube的iFrame API来初始化一个当div要保持隐藏,直到后来,像使用绝对定位的CSS技术,直到你以后希望它推离屏幕。 此外,发现一旦玩家对象初始化和'onPlayerReady'被称为你可以把显示器和关闭整天和预期都将仍然工作。

Answer 1:

你应该让玩家conainer空如

<div class="myPlayerContainer"></div>

当你想要显示它只是其附加到容器:

$('#showVideoBtn').click(function(){
    $('.myPlayerContainer').show().append('~ code of youtube iframe ~');
});


Answer 2:

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/



文章来源: YouTube IFrame API on Internet Explorer and Firefox