2010-07-20 19 views
15

Spesso vedo siti che utilizzano iframe contenenti un sito esterno e un frame superiore contenente funzionalità JavaScript per l'utente.Posso applicare CSS agli elementi all'interno di un iframe?

ad es. software di analisi degli utenti, bar Digg, ecc ...


qualche consiglio per la sperimentazione su qualcosa di simile? =) Sarebbe fantastico sapere

risposta

22

No, non dal di fuori l'iframe. Un è il suo mondo. Se i domini, ecc., Corrispondono, allora Javascript può comunicare dentro e fuori e potrebbe (se lo desidera) iniettare CSS in un frame figlio.

Se lo contiene contenuti di un dominio diverso, non c'è praticamente nulla che tu possa fare. La pagina padre controlla la dimensione del frame e se è visibile e può inserire il proprio contenuto su il frame posizionandolo ecc., Ma non può influenzare direttamente il rendering del contenuto effettivo del frame.

+0

grazie mille! Cosa succede se il dominio è lo stesso della pagina host? – RadiantHex

+1

Se ti trovi nello stesso dominio, Javascript dalla pagina padre può rovinare il contenuto del frame. La pagina madre CSS non influenzerà la pagina frame, ma Javascript può cambiare il CSS o cambiare gli stili degli elementi, ecc. – Pointy

+0

c'è comunque da fare usando alcune tecniche che la gente sta dicendo ... incorporando un iframe o postMessage figlio o qualcosa del genere? http://pipwerks.com/2008/11/30/iframes-and-cross-domain-security-part-2/ http://johan.driessen.se/posts/resizing-cross-domain- iframe –

3

Se è dello stesso dominio, è possibile interferire con il contenuto iframe utilizzando javascript nel modo seguente. assume ID di iframe è IframeId. E tu vuoi cambiare il colore dell'elemento che ha id "elementId".

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