Gibt es eine Möglichkeit, wie der Titel sagt "Seite anders (css) wenn iframe" anzeigen. Ich suche nach einer jQuery/JavaScript-Methode, um möglicherweise ein anderes CSS-Stylesheet zu verwenden, wenn sich die Site innerhalb eines IFrames befindet. Irgendwelche Ideen?Seite anders anzeigen (css) wenn innerhalb iframe
Antwort
Sie können inject ein anderes Stylesheet, wenn das Fenster nicht die top window ist.
if (window.top!=window.self)
{
// In a Frame or IFrame
}
else
{
// Not in a frame
}
if(self != top) {
headTag = document.getElementsByTagName("head")[0].innerHTML;
var frameCSS = headTag + '<style type="text/css">**insert CSS here**</style>';
document.getElementsByTagName('head')[0].innerHTML = frameCSS;
}
Wenn die Seite ist die einzige Seite angezeigt wird, oben, Eltern, sich selbst und Fenster gleich sein. Wenn die Seite innerhalb eines Framesets gehalten wird, sind self und top nicht gleich. Wenn die Seite die Seite ist, die das Frameset enthält, und sie selbst nicht innerhalb eines Framesets gehalten wird, sind self und top gleich.
Anstatt ein neues Stylesheet zu injizieren, würde ich vorschlagen, eine body
CSS-Klasse hinzuzufügen.
jQuery Beispiel:
$(function() {
if (window.self != window.top) {
$(document.body).addClass("in-iframe");
}
});
Jetzt können Sie die Dinge anders wie
.in-iframe p {
background: purple;
}
^dies. Mit einer ganzen neuen CSS-Datei zu gehen, ist wahrscheinlich für die meisten praktischen Anwendungen übertrieben. –
Hier Stil ist ein schneller und Designer freundlicher Ansatz Vanille JS verwenden. Nur eine Zeile von JS und das Aussehen und Gefühl kann von CSS/SASS/LESS gesteuert werden.
Dieses im head
Element vor jedem CSS oder JS geladen wird:
// Sets the class of the HTML element using vanilla JavaScript
document.documentElement.className += (window.self == window.top ? " top" : " framed");
Dann in Ihrem CSS/SASS/LESS können Sie verbergen, anzeigen, und zwicken, auf deren Basis Klasse angewendet wurde.
/* Hide site navigation when in an iframe */
html.framed .site-nav,
html.framed .site-footer {
display: none;
}
PSA: Betrachten Sie die Vorteile der X-Frame-Options Einnahme von Ihrer harten Arbeit zu halten entführt.
Das ist nur ordentlich, sauber und selbsterklärend, ich mag es! –
- 1. Link zu einer Seite innerhalb Facebook iframe
- 2. CSS Darstellungsgröße ist anders
- 3. Unterschiede anzeigen, wenn die lokale HTML-Seite
- 4. Bild in Iframe anzeigen
- 5. CSS und Iframe. Wie sehe ich die ganze Seite ohne Scroll im Iframe?
- 6. Permalink-fu - URL anders anzeigen
- 7. DIV-Element entfernen, wenn IFRAME innerhalb dieses DIV geklickt wird
- 8. zulassen innerhalb iFrame ein-, aber nicht auf Seite in iOS
- 9. Ändern Sie das CSS der übergeordneten Seite von iframe
- 10. erkennen klicken innerhalb iframe
- 11. Bildlaufposition innerhalb der Seite nach CSS-Ereignis ohne JS beibehalten?
- 12. Javascript/CSS: set (firefox) Zoomstufe von iframe?
- 13. Wenden Sie CSS-Stil auf Iframe-Seite, bevor es lädt
- 14. Wie innerhalb eines iframe
- 15. Jquery innerhalb Iframe
- 16. erhalten id innerhalb iframe
- 17. IE7 iframe leere Seite
- 18. jquery access element innerhalb iFrame
- 19. Verwenden Sie CSS-Klassen innerhalb eines Iframe definiert, außerhalb der iframe
- 20. Volle Seite <iframe>
- 21. Wie Umleitung Seite innerhalb iframe zu einem anderen, aber wir müssen in iframe bleiben
- 22. Feste Divs und innerhalb von Iframe-Elementen
- 23. Medien Abfragen fehl innerhalb IE9 iframe
- 24. XPath von Checkbox innerhalb iframe innerhalb div
- 25. Externe .css und .js in iframe
- 26. CSS Hintergrundbild Rendering anders auf iPhone
- 27. Wie man Bild innerhalb iframe zielt
- 28. WooCommerce Empty Cart, wenn Benutzer auf Seite oder Seite anders als aktuelle Checkout-Seite gehen
- 29. check css in iframe mit Abfrage
- 30. Offset einer Webseitenposition innerhalb von iframe
DANKE SO VIEL! – ThomasReggi
Gibt es eine reine CSS-Methode, um dies zu erreichen oder wird 'window.top' über JavaScript benötigt? – iX3
@ iX3 - gibt es nicht. CSS kennt keine Frames. – Oded