2010-07-20 24 views
15

A menudo veo sitios que usan iframes que contienen un sitio externo y un marco superior que contiene la funcionalidad de JavaScript para el usuario.¿Puedo aplicar CSS a los elementos dentro de un iframe?

p. software de análisis de usuario, Digg bar, etc ...


¿Algún consejo para experimentar con algo similar? =) Sería increíble saber

Respuesta

22

No, no desde fuera de el iframe. Un es su propio mundo. Si los dominios coinciden, JavaScript puede comunicarse dentro y fuera, y podría (si lo desea) inyectar CSS en un marco secundario.

Si el contiene contenido de un dominio diferente, no hay prácticamente nada que pueda hacer. La página primaria controla el tamaño del marco y si está visible, y puede poner su propio contenido sobre el marco mediante posicionamiento, etc., pero no puede afectar directamente la forma en que se procesa el contenido del marco real.

+0

muchas gracias! ¿Qué pasa si el dominio es exactamente el mismo que la página de host? – RadiantHex

+1

Si está en el mismo dominio, Javascript desde la página principal puede interferir con el contenido del marco. La página padre CSS no afectará a la página de marcos, pero Javascript puede cambiar el CSS o cambiar estilos de elementos, etc. – Pointy

+0

está ahí para hacer esto usando algunas técnicas que la gente está diciendo ... incrustando un iframe hijo o postMessage o algo así? http://pipwerks.com/2008/11/30/iframes-and-cross-domain-security-part-2/ http://johan.driessen.se/posts/resizing-cross-domain- iframes –

3

Si es del mismo dominio, puede interferir con el contenido del iframe utilizando javascript de la siguiente manera .. asume que id de iframe es IframeId. Y desea cambiar el color del elemento que tiene id "elementId".

$("iframe").load(function() { 
    var frameContents; 
    frameContents = $("#IframeId").contents(); 
    frameContents.find("#elementId").css("color","#fff"); 
}); 
Cuestiones relacionadas