2013-07-26 5 views
24

verwendet, wenn eine YouTube-Playlist Einbetten ich diese Störung erhalte:Youtube „Blockierte einen Rahmen mit Ursprung‚http://www.youtube.com‘aus einem Rahmen mit Ursprung Zugriff“, auch wenn das gleiche Protokoll

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.

Ich vermische HTTP nicht mit HTTPS irgendwo, also weiß ich nicht, warum ich diesen Fehler in erster Linie bekomme.

Ich habe festgestellt, dass vor kurzem die eingebettete Youtube-Wiedergabeliste das eingebettete Bild des ersten Videos nicht anzeigt und nur einen schwarzen Bildschirm mit einer Schaltfläche "Alle wiedergeben" anzeigt, und ich frage mich, ob dies durch den obigen Fehler verursacht wird .

+1

Hier ist das Chrom Problem ... https://code.google.com/p/chromium/issues/detail?id=17325 Es ist im Grunde ein Fehler in V8, der behoben werden muss, so dass Chrom richtige ex verwenden kann ception handling, um damit umzugehen. Es hat nichts mit etwas zu tun, das Sie mit eingebetteten Playlists sehen könnten (und sollte eigentlich auch keine negativen Auswirkungen haben). – jlmcdonald

+1

Ich habe geändert, stattdessen die JavaScript-API zu verwenden. Es scheint, dass das Problem, das ich hatte, ein Problem war, das mit den neuesten Updates auf YouTube eingeführt wurde, die die Einbettung von iframe bewirkten. Dies ist nicht verwandt, wie es scheint. Überprüfen Sie meine andere Frage hier: http://stackoverflow.com/questions/17832807/youtube-embedded-playlist-diplays-playall-button-instead-of-the-first-video – jbx

+0

können Sie das Skript hinzufügen, das zu youtube anruft? – scalopus

Antwort

5

Anscheinend scheint der Fehler, der von Chrome gegeben wird, ein Fehler zu sein. Um den schwarzen Bildschirm mit ‚Play All‘ Button Problem zu lösen ich die Javascript-API verwendet (anstelle des iframe), wie folgt aus:

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

Vielen Dank für die Antwort auf @jlmcdonald, wie hier angegeben: Youtube embedded playlist diplays playall button instead of the first video

-1

dieses Problem ist ganz offensichtlich auf den Youtube-Service, im Grunde kann Youtube nur über https, http zugegriffen wird nun nicht erlaubt, nur Ihre ‚http‘ zu „https“ ... das ist die Lösung