2012-05-21 27 views
6

Tengo un sitio html simple con un archivo Flash incrustado y se usa SWFobject en él.SWFobject dentro de iFrame: ¿cosas del dominio cruzado?

Este sitio es el src de un iframe. Si abro el sitio con el iframe en él la consola me dice ...

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 

Me pregunto lo que la ventana padre (con el iframe en ella) tiene que ver con el swfobjet dentro del marco flotante? Como se mencionó anteriormente, el objeto swfobject se usa para incrustar el flash en la página secundaria que se carga en el iframe. El sitio iframe-test/index.html tiene solo ...

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

... en él. Nada mas. ¿Por qué tengo un unsafe javascript attempt here?

¿Alguna idea sobre eso? Gracias de antemano.

actualización: Bueno, acabo de reconocer que esto le sucede a Youtube y Vimeo, así como a sus reproductores incorporados. Estoy usando la consola de Chrome y ocurre el mismo error para Youtube y Vimeo.

Respuesta

0

No sé si esto es de alguna utilidad ahora pero el error se produce porque file:///experiment/iframe-test/index.html y http://localhost.lan/embed/GYZA son vistos por el navegador como dos dominios diferentes por lo que la política de dominio cruzado del navegador lo considera inseguro. Dependiendo del navegador que tenga el usuario, esto podría ser inseguro: la página remota que está cargando podría tener scripts dañinos que podrían desestabilizar la página actual que está viendo o intentar robar varios datos. Puede encontrar más información here.

0

Acabo de validar la pregunta actualizada de Matt.

Siempre que un objeto flash esté incrustado en un iframe de dominios cruzados, emitirá una excepción entre dominios. Esto es cierto para Youtube y Vimeo.

Por ejemplo, comprobar fuera de este jsFiddle con un iFrame incrustado: 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> 
Cuestiones relacionadas