嵌入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嵌入式播放列表没有显示第一个视频的嵌入图像,只显示带有“全部播放”按钮的黑屏,我想知道这是否是由上述错误引起的。
答案 0 :(得分:5)
显然,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 embedded playlist diplays playall button instead of the first video
答案 1 :(得分:-1)
这个问题对于Youtube服务非常明显,基本上Youtube只能通过https访问,现在不允许http,只需将你的'http'更改为“https”......这就是解决方案