2013-07-26 10 views
24

Podczas osadzania playlistę Youtube ja dostaję ten błąd:Youtube „Zablokowane ramkę z pochodzenia«http://www.youtube.com»dostępu ramkę z pochodzenia”, nawet jeśli ten sam protokół jest używany

Blocked a frame with origin "http://www.youtube.com" from accessing a frame with origin "http://www.mydomain.com". Protocols, domains, and ports must match.

Nie mieszam HTTP z HTTPS w dowolnym miejscu, więc nie wiem, dlaczego otrzymuję ten błąd w pierwszej kolejności.

Zauważyłem, że ostatnio na wbudowanej playliście YouTube nie wyświetla się obraz z pierwszego filmu i wyświetlany jest czarny ekran z przyciskiem "Odtwórz wszystko" i zastanawiam się, czy jest to spowodowane powyższym błędem .

+1

Oto chrom problem ... https://code.google.com/p/chromium/issues/detail?id=17325 Jest to w zasadzie błąd w V8, który musi zostać naprawiony, aby Chromium mógł użyć właściwego ex obsługa recepcji, aby sobie z tym poradzić. Nie ma to związku z niczym, co można zobaczyć na osadzonych listach odtwarzania (i tak naprawdę nie powinno to mieć żadnych negatywnych skutków). – jlmcdonald

+1

Zmieniłem, aby używać interfejsu API javascript. Wygląda na to, że problem, który miałem, to kwestia wprowadzona wraz z najnowszymi aktualizacjami YouTube, które wpłynęły na osadzanie elementów iframe. To nie jest związane, jak się wydaje. Sprawdź moje inne pytanie tutaj: http://stackoverflow.com/questions/17832807/youtube-embedded-playlist-diplays-playall-button-instead-of-the-first-video – jbx

+0

czy możesz dodać skrypt wywołujący youtube? – scalopus

Odpowiedz

5

Wygląda na to, że błąd podany przez chrome jest błędem. Aby rozwiązać ten czarny ekran z „Play All” przycisk problem użyłem API Javascript (zamiast iframe), podobnie jak to:

<!DOCTYPE html> 
<html> 
    <body> 
    <div id="player"></div> 
    <script> 
     var tag = document.createElement('script'); 
     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
     var player; 
     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
      height: '390', 
      width: '640', 
      videoId: '', 
      events: { 
      'onReady': onPlayerReady 
      } 
     }); 
     } 
     function onPlayerReady(event) { 
     player.cuePlaylist({'listType':'playlist','list':'PLE2714DC8F2BA092D'}); 
     } 
    </script> 
    </body> 
</html> 

Dzięki @jlmcdonald na odpowiedź, jak pokazano tutaj: Youtube embedded playlist diplays playall button instead of the first video

-1

kwestia ta jest dość oczywiste dla serwisu YouTube, w zasadzie Youtube można uzyskać tylko poprzez HTTPS, HTTP nie może teraz, po prostu zmienia swoją „http” na „https” ... to jest rozwiązanie

Powiązane problemy