iFrame中的SWFobject:跨域的东西?

时间:2012-05-21 06:02:29

标签: iframe flash embed swfobject

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

此网站是iframe的src。如果我打开带有iframe的网站,控制台会告诉我......

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网站刚刚......

<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也会出现同样的错误。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我刚刚验证了Matt的更新问题。

每当一个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>