嵌入的YouTube视频不会停留在Chrome和IE中

时间:2011-08-11 17:05:53

标签: javascript html youtube

关于此的几个主题但对我没有答案。

将YouTube视频嵌入叠加div:

   <div id="blanket" style="display:none;">
     </div>
        <div id="popUpDiv" style="display:none;">
        <a href="#" onclick="popup('popUpDiv')">Close</a>     
        <iframe width="480" height="390" src="https://www.youtube.com/embed/G5AuItKv?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>                                       
        </div>

在Firefox关闭窗口时,视频停止,但不在Chrome或Internet Explorer中。

当用户点击“关闭”时,是否有一些简单的javascript可以用来阻止它?

TIA

编辑:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<a href="#" onclick="javascript:ytplayer.stop()">Close</a>

 <iframe width="480" height="390" src="http://www.youtube.com/e/PE1il5znICA?enablejsapi=1&version=3&playerapiid=ytplayer" frameborder="0"  allowfullscreen></iframe>


 <script type="text/javascript">
function onYouTubePlayerReady(playerId) {
    ytplayer = document.getElementById("ytplayer");
}

function stop() {
  if (ytplayer) {
    ytplayer.stopVideo();
  }
}
</script>
</body>
</html>

2 个答案:

答案 0 :(得分:3)

Youtube有一个javascript api,你可以启用它来停止视频。要启用api,请将此参数:&enablejsapi=1添加到src网址的末尾,现在您可以通过javascript访问播放器了。首先,您需要获得玩家参考:

function onYouTubePlayerReady(playerId) {
    ytplayer = document.getElementById("nameofplayer");
}

现在您可以使用以下功能停止视频:

function stop() {
  if (ytplayer) {
    ytplayer.stopVideo();
  }
}

只需在onclick函数内调用stop();即可。

所有youtube javascript api信息都位于here

答案 1 :(得分:1)

我在HTML5中遇到了同样的问题。 iframe无法与Youtube API一起使用,您必须使用启用JavaScript API生成对象。

尝试更改:

<iframe width="480" height="390" src="http://www.youtube.com/e/PE1il5znICA?enablejsapi=1&version=3&playerapiid=ytplayer" frameborder="0"  allowfullscreen></iframe>

为:

swfobject.embedSWF("http://www.youtube.com/e/PE1il5znICA?enablejsapi=1&version=3&playerapiid=ytplayer","ytplayer", "480", "390", "8", null, null, params, atts);

例:

首先将div添加到html:

<div id="ytplayer">
<p>You need Flash player and JavaScript enabled to view this video.</p>
</div>

然后添加脚本以创建对象并添加停止功能:

<script type="text/javascript">

    function onYouTubePlayerReady(playerId){ytplayer = document.getElementById("ytplayer");}
         var params = { allowScriptAccess: "always" };var atts = { id: "ytplayer" };


         swfobject.embedSWF("http://www.youtube.com/e/videoID?enablejsapi=1&version=3&playerapiid=ytplayer","ytplayer", "425", "356", "8", null, null, params, atts);

         function stop() {if (ytplayer) {ytplayer.stopVideo();}}
    </script>

为我工作。