我正在尝试使用以下代码嵌入 YouTube 视频:
<iframe width="425" height="319" frameborder="0" wmode="Opaque"allowfullscreen=""
src="http://www.youtube.com/embed/8vJwFvFi4ZY?wmode=transparent">
</iframe>
虽然它工作正常,但它在控制台中给出了这个错误:
Chrome version 22.0.1229.94:
Unsafe JavaScript attempt to access frame with URL http://example.com/
from frame with URL http://www.youtube.com/embed/8vJwFvFi4ZY?wmode=transparent.
Domains, protocols and ports must match.Firefox 版本 17.0:
Error: Permission denied to access property 'toString'
我四处搜索,但我发现这可能是 YouTube 的问题,他们应该解决它,
问题是:我怎样才能摆脱这个错误? (无论如何,甚至通过压制它。)
最佳答案
你无法阻止它,至少不能以我所知道的任何方式(而且我已经尝试了很多)。 iframe 目标中有一个脚本会尝试访问您的文档,可能会寻找它可以调用以启用 API 的全局函数。
另一件事是,即使使用他们自己的 iframe API,错误仍然存在: http://jsbin.com/izabed/1/edit
这样做没有坏处,您的视频会正常播放。但如果你在控制台中运行它,它看起来有点大胆。他们可能应该将其作为参数包括在内,起初我认为这是 origin
的想法。参数,但它没有任何区别。
还值得注意的是,他们自己的 demo显示相同的错误(和其他错误)。此外,如果您使用 embed
标记而不是 iframe,它不会显示任何错误。
所以你可以做这样的事情来防止大多数桌面浏览器中的错误:
if(haveflash) {
// use <embed>
} else {
// use iframe
}
更新
大多数浏览器不再支持 flash,nor does Adobe .不幸的是,这意味着使用 <embed>
不再是一个可行的选择。
关于javascript - 使用 iframe 嵌入 Youtube 视频给出 "Unsafe JavaScript attempt ... ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13625239/