25

嵌入 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 嵌入式播放列表没有显示第一个视频的嵌入图像,而只是显示带有“全部播放”按钮的黑屏,我想知道这是否是由上述错误引起的。

4

2 回答 2

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

于 2013-09-13T12:53:07.943 回答
-1

这个问题在 Youtube 服务上比较明显,基本上 Youtube 只能通过 https 访问,现在不允许使用 http,只需将你的 'http' 更改为 "https" ......这就是解决方案

于 2015-10-29T07:27:07.763 回答