2011-08-11 15 views
5

Kilka tematów na ten temat, ale bez odpowiedzi dla mnie.Osadzone wideo z YouTube nie zatrzymuje się w Chrome i IE

Osadzanie wideo youtube w div overlay:

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

na Firefox, kiedy zamknąć okno wideo zatrzymuje się, ale nie w Chrome lub Internet Explorer.

Czy jest jakiś prosty javascript, za pomocą którego można go zatrzymać, gdy użytkownik kliknie Zamknij?

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> 

Odpowiedz

3

Youtube ma javascript API, które można włączyć, tak aby zatrzymać film. Aby włączyć api dodaj ten parametr: &enablejsapi=1 na końcu adresu URL src, a teraz możesz uzyskać dostęp do odtwarzacza za pomocą javascript. Najpierw trzeba uzyskać odniesienie zawodnik:

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

i teraz masz możliwość zatrzymania wideo z następujących funkcji:

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

Wystarczy zatelefonować do stop(); wewnątrz funkcji onclick do ścisłej .

Wszystkie informacje na temat apletu apletu youtube javascript znajdują się pod numerem here.

+0

W przypadku dalszych inspekcji iframe api jest nieco inny. Przeczytaj [tutaj] (https://code.google.com/apis/youtube/iframe_api_reference.html#Loading_a_Video_Player), aby uzyskać więcej informacji na temat uzyskiwania dostępu do odtwarzacza za pośrednictwem javascript. –

1

Miałem ten sam problem w HTML5. Iframe nie działa z interfejsem API Youtube, musisz wygenerować obiekt z włączonym API JavaScript.

zmiana Spróbuj:

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

do:

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

exemple:

Pierwszy dodać div html:

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

Następnie dodać skrypt do tworzenia obiektu i dodaj funkcję zatrzymania:

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

Pracuj dla mnie.

Powiązane problemy