Встроенное видео YouTube не останавливается в Chrome и IE - PullRequest
5 голосов
/ 11 августа 2011

Мало тем по этому вопросу, но нет ответов для меня.

Встраивание видео 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

Edit:

    <!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 ]

3 голосов
/ 11 августа 2011

Youtube имеет API Java, который вы можете включить, чтобы остановить видео.Чтобы включить API, добавьте этот параметр: &enablejsapi=1 в конец вашего src url, и теперь вы можете получить доступ к плееру через javascript.Сначала вам нужно получить ссылку на игрока:

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

, и теперь у вас есть возможность остановить видео с помощью следующей функции:

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

Просто позвоните stop();внутри функции onclick для закрытия.

Вся информация API javascript для YouTube находится здесь .

1 голос
/ 29 мая 2012

У меня была такая же проблема в HTML5.Если фрейм не работает с API YouTube, необходимо сгенерировать объект с включенным API JavaScript.

Попробуйте изменить:

<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>

Работа для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...