YouTube iframe API http / https协议和原始问题

时间:2014-08-22 09:52:19

标签: iframe https youtube safari youtube-iframe-api

我使用YouTube iframe API获取了各种http / https和原始错误,这只是Safari的问题(我认为在大多数版本中,我使用的是7.0.4版本)

我收到了这些错误:

  

无法向https://www.youtube.com发送消息。收件人来源http://example.com

  

屏蔽了包含原点" https://www.youtube.com"从访问带有起源的框架" http://example.com"。请求访问的帧具有" https"的协议,被访问的帧具有" http"的协议。协议必须匹配。

结果是视频保持黑色,有时会在其中显示播放图标。视频通常会加载,相当随机。视频本身会自动播放,因此无需点击。所有其他浏览器都表现良好。

创建YTPlayer时,原始参数的设置如下:

playerVars: {
    origin: 'http://example.com'
}

YouTube本身就像这样加载:

var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

我已尝试指定" http://www.youtube.com/iframe_api&#34 ;;我得到了同样的错误。我的域名是http而不是https - 我猜测这是问题的根源,我不确定如何阻止youtube默认为https。

1 个答案:

答案 0 :(得分:-3)

提高z-index解决了这个问题,比如

z-index: 1000

在我的情况下,我使用famo.us框架,你很容易遇到z-index问题。只有safari在现代浏览器中具有这种行为,并且可以在不影响视觉z位置的情况下以这种方式更改z-index。