Youtube " заблокировал кадр с origin "http://www.youtube.com" от доступа к фрейму с origin", даже если используется тот же протокол
при встраивании плейлиста Youtube я получаю эту ошибку:
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.
Я не смешиваю HTTP с HTTPS в любом месте, поэтому я не знаю, почему я получаю эту ошибку в первую очередь.
Я заметил, что в последнее время встроенный плейлист Youtube не отображает встроенное изображение первого видео и просто отображает черный экран с кнопкой "воспроизвести все", и мне интересно, вызвано ли это вышеуказанной ошибкой.
2 ответов
по-видимому, кажется, что ошибка, данная chrome, является ошибкой. Чтобы решить черный экран с помощью кнопки "воспроизвести все", я использовал Javascript API (вместо iframe), например:
<!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>
спасибо @jlmcdonald за ответ, как указано здесь:Youtube встроенный плейлист diplays playall кнопка вместо первого видео
эта проблема вполне очевидна для службы Youtube, в основном Youtube может быть доступен только через https, http сейчас не разрешен, просто измените свой "http"на " https"...вот решение