6

我有一个带有嵌入式 Flash 文件的简单 html 站点,并在上面使用了 SWFobject。

该站点是 iframe 的 src。如果我打开带有 iframe 的网站,控制台会告诉我……</p>

Unsafe JavaScript attempt to access frame with URL file:///experiment/iframe-
test/index.html from frame with URL http://localhost.lan/embed/GYZA. Domains,
protocols and ports must match. -> swfobject.js

我想知道父窗口(其中包含 iframe)与 iframe 内的 swfobjet 有什么关系?因此,如上所述,swfobject 用于将 flash 嵌入到加载到 iframe 中的子页面上。该iframe-test/index.html网站刚刚……</p>

<body>
    <iframe src="http://localhost.lan/embed/GYZA" width="100%" height="100%" frameborder="0" allowfullscreen></iframe>
</body>

… 在上面。而已。为什么我有一个unsafe javascript attempt here

有什么想法吗?先感谢您。

更新:嗯,我刚刚意识到这发生在 Youtube 和 Vimeo 以及他们的嵌入式播放器上。我正在使用 chrome 控制台,同样的错误发生在 Youtube 和 Vimeo 上。

4

2 回答 2

0

我刚刚验证了马特的更新问题。

每当 Flash 对象嵌入到跨域 iframe 中时,都会抛出跨域异常。Youtube 和 Vimeo 也是如此。

例如,查看这个嵌入了 iFrame 的 jsfiddle:http: //jsfiddle.net/bkCdB/

<object width="420" height="315"><param name="movie" value="http://www.youtube.com/v/6V_DsL1x1uY?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/6V_DsL1x1uY?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>
于 2013-03-26T23:06:34.183 回答
0

不知道这现在是否有任何用处,但是会抛出错误,因为浏览器将file:///experiment/iframe-test/index.htmlhttp://localhost.lan/embed/GYZA视为两个不同的域,因此浏览器的跨域策略认为这是不安全的。根据用户使用的浏览器,这可能是不安全的 - 您正在加载的远程页面可能包含有害脚本,这些脚本可能会破坏您正在查看的当前页面或尝试窃取各种信息。你可以在这里找到更多信息。

于 2012-10-26T10:23:18.817 回答