Youtube Bloqué un cadre avec origine "http://www.youtube.com" d'accéder à un cadre d'origine", même si le même protocole est utilisé
lors de l'intégration D'une liste de lecture Youtube, j'obtiens cette erreur:
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.
Je ne mélange Pas HTTP avec HTTPS n'importe où, donc je ne sais pas pourquoi je reçois cette erreur en premier lieu.
j'ai remarqué que récemment la playlist embarquée sur Youtube n'affiche pas l'image embed de la première vidéo et affiche juste un écran noir avec un bouton "Play All", et je me demande si cela est dû à l'erreur ci-dessus.
2 réponses
apparemment, il semble que l'erreur donnée par chrome soit un bug. Pour résoudre le problème de l'écran noir avec le bouton "Play All", j'ai utilisé L'API Javascript (au lieu de l'iframe), comme ceci:
<!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>
merci à @jlmcdonald pour la réponse, comme indiqué ici: YouTube embedded playlist diplays playall button au lieu de la première vidéo
ce problème est assez évident pour le service Youtube, fondamentalement Youtube ne peut être consulté que par le biais de https, http n'est pas autorisé maintenant, il suffit de changer votre 'http' en"https"...c'est la solution