2012-05-21 6 views
6

Ho un sito html semplice con un file Flash incorporato e su di esso viene utilizzato SWFobject.SWFobject all'interno di iFrame: roba interdominio?

Questo sito è lo src di un iframe. Se apro il sito con l'iframe su di esso la console mi 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 

mi chiedo che la finestra padre (con l'iframe in esso) ha a che fare con la swfobjet all'interno del iframe? Quindi, come accennato in precedenza, lo swfobject viene utilizzato per incorporare il flash sulla pagina figlio che viene caricata nell'iframe. Il sito iframe-test/index.html ha solo ...

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

... su di esso. Niente di più. Perché ho un unsafe javascript attempt here?

Qualche idea al riguardo? Grazie in anticipo.

aggiornamento: Bene, ho appena riconosciuto che questo accade anche a YouTube e Vimeo per i loro giocatori incorporati. Sto usando la console di Chrome e lo stesso errore si verifica per Youtube e Vimeo.

risposta

0

Non so se questo è di qualche utilità ora ma l'errore è stato generato perché file:///experiment/iframe-test/index.html e http://localhost.lan/embed/GYZA sono visti dal browser come due domini diversi in modo che il criterio del dominio incrociato del browser lo ritiene non sicuro. A seconda del browser che l'utente ha, questo potrebbe non essere sicuro: la pagina remota che stai caricando potrebbe avere script dannosi che potrebbero destabilizzare la pagina corrente che stai visualizzando o tentare di rubare varie informazioni. Puoi trovare maggiori informazioni here.

0

Ho appena convalidato la domanda aggiornata di Matt.

Ogniqualvolta un oggetto flash è incorporato in un iframe tra domini, genera un'eccezione di dominio incrociato. Questo è vero per Youtube e Vimeo.

Per esempio, controlla questo jsfiddle con un iFrame incorporato: 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> 
Problemi correlati