【发布时间】:2012-11-17 11:52:07
【问题描述】:
我正在尝试使用此代码嵌入 YouTube 视频:
<iframe width="425" height="319" frameborder="0" wmode="Opaque"allowfullscreen=""
src="http://www.youtube.com/embed/8vJwFvFi4ZY?wmode=transparent">
</iframe>
虽然它工作正常,但它在控制台中给出了这个错误:
Chrome 版本 22.0.1229.94:
不安全的 JavaScript 尝试使用 URL http://example.com/ 访问框架
来自 URL http://www.youtube.com/embed/8vJwFvFi4ZY?wmode=transparent 的框架。
域、协议和端口必须匹配。Firefox 17.0 版:
错误:访问属性“toString”的权限被拒绝
我四处搜索,但发现这可能是 YouTube 的问题,他们应该解决它,
问题是:我怎样才能摆脱这个错误? (无论如何,甚至通过压制它。)
【问题讨论】:
-
这有点猜测,所以我不会将其发布为答案,但我怀疑 youtube 内容中的脚本正在尝试查看 iframe 的参数以获取参数像 wmode 和 allowfullscreen。您的浏览器正确地将其视为跨站点脚本尝试,出于安全原因,这是不允许的。如果您将 youtube 所需的所有参数嵌入到 URL 查询字符串中,那么您可能会阻止它这样做。
-
还忍不住注意到 iframe 中有 wmode=opaque,URL 中有 wmode=transparent。
-
我读了很多关于为什么会发生这种情况的意见,很多人说这是因为 iframe 中加载的 Youtube API 试图访问违反安全标准的父元素,并且它已经被报告为错误,但我在这里更关心的是如何阻止此错误出现在控制台中,而不仅仅是等待 Youtube 开发人员解决它。关于 wmode,我没有注意到 :),谢谢
-
我建议(猜测)的解决方案在我评论的最后一行 - 将 youtube 所需的所有参数嵌入到 URL 查询字符串中 - 值得一试。
-
我试过了,还是报错
标签: javascript iframe youtube youtube-iframe-api