Πώς να εφαρμόσετε CSS σε iframe;

Έχω μια απλή σελίδα που έχει κάποια τμήματα iframe (για την εμφάνιση συνδέσμων RSS). Πώς μπορώ να εφαρμόσω την ίδια μορφή CSS από την κύρια σελίδα στη σελίδα που εμφανίζεται στο iframe;

Αν το περιεχόμενο του iframe δεν είναι πλήρως υπό τον έλεγχό σας ή αν θέλετε να έχετε πρόσβαση στο περιεχόμενο από διαφορετικές σελίδες με διαφορετικά στυλ, μπορείτε να δοκιμάσετε να το χειριστείτε χρησιμοποιώντας JavaScript.

var frm = frames['frame'].document;
var otherhead = frm.getElementsByTagName("head")[0];
var link = frm.createElement("link");
link.setAttribute("rel", "stylesheet");
link.setAttribute("type", "text/css");
link.setAttribute("href", "style.css");
otherhead.appendChild(link);

Σημειώστε ότι ανάλογα με το πρόγραμμα περιήγησης που χρησιμοποιείτε, αυτό μπορεί να λειτουργήσει μόνο σε σελίδες που εξυπηρετούνται από τον ίδιο τομέα.

Σχόλια (2)

Ένα iframe αντιμετωπίζεται παγκοσμίως από τα περισσότερα προγράμματα περιήγησης σαν μια διαφορετική σελίδα HTML. Αν θέλετε να εφαρμόσετε το ίδιο φύλλο στυλ στο περιεχόμενο του iframe, απλά αναφερθείτε σε αυτό από τις σελίδες που χρησιμοποιούνται εκεί.

Σχόλια (1)

Εάν ελέγχετε τη σελίδα στο iframe, όπως είπε ο hangy, η ευκολότερη προσέγγιση είναι να δημιουργήσετε ένα κοινόχρηστο αρχείο CSS με κοινά στυλ και στη συνέχεια να συνδέσετε σε αυτό τις σελίδες html.

Διαφορετικά, είναι απίθανο να μπορέσετε να αλλάξετε δυναμικά το στυλ μιας σελίδας από μια εξωτερική σελίδα στο iframe σας. Αυτό συμβαίνει επειδή τα προγράμματα περιήγησης έχουν αυστηροποιήσει την ασφάλεια στο cross frame dom scripting λόγω πιθανής κατάχρησης για spoofing και άλλες παραβιάσεις.

Αυτό το σεμινάριο μπορεί να σας παρέχει περισσότερες πληροφορίες σχετικά με το scripting iframes γενικά. About cross frame scripting εξηγεί τους περιορισμούς ασφαλείας από την πλευρά του IE.

Σχόλια (0)