Heim >Web-Frontend >js-Tutorial >Verwenden Sie JQuery, um CSS auf Iframe -Inhalten zu ändern

Verwenden Sie JQuery, um CSS auf Iframe -Inhalten zu ändern

Jennifer Aniston
Jennifer AnistonOriginal
2025-03-03 00:24:15333Durchsuche

Use jQuery to Change CSS on iFrame Content

Verwenden Sie JQuery, um CSS auf Iframe -Inhalten zu ändern

In diesem Beitrag habe ich auch eine Dokumentation fehlgeschlagener Versuche zum Versuch aufgenommen, das CSS von iframed -Inhalten in einer anderen Domäne zu ändern. Auch einige Informationen darüber, wie CSS in einem Iframe auf derselben Domäne geändert werden kann, was (soweit ich weiß) ohne einen Proxy -Pass oder dergleichen nicht durchgeführt werden kann.

Cross Domain Bemühungen

Wie es funktioniert: verglichen URL Ergebnis Grund http://www.example.com/dir/page.html Erfolg Gleiches Protokoll und Host http://www.example.com/dir2/other.html Erfolg Gleiches Protokoll und Host http://www.example.com:81/dir/other.html Versagen Gleiches Protokoll und Host, aber ein anderer Port https://www.example.com/dir/other.html Versagen Verschiedenes Protokoll http://en.example.com/dir/other.html Versagen Anderer Gastgeber http://example.com/dir/other.html Versagen Unterschiedlicher Host (genaue Übereinstimmung erforderlich) http://v2.www.example.com/dir/other.html Versagen Unterschiedlicher Host (genaue Übereinstimmung erforderlich)

Iframe einfügen:


<span>Ways to to change CSS in an iframe
</span><span>Some of these work, and some don't but i've included both for you to ponder amd make up your own decisions.
</span>
<span><span>This</span> method didn't work for me.
</span><span>[js]
</span><span>var text = 'hi';
</span><span>var content = "" + text + "";
</span>
<span>var iframe = document.createElement("iframe");
</span>iframe<span>.src = ' document.body.appendChild(iframe);
</span>
<span>var doc = iframe.document;
</span><span>if(iframe.contentDocument)
</span>doc <span>= iframe.contentDocument; // For NS6
</span><span>else if(iframe.contentWindow)
</span>doc <span>= iframe.contentWindow.document; // For IE5.5 and IE6
</span><span>// Put the content in the iframe
</span>doc<span>.open();
</span>doc<span>.writeln(content);
</span>doc<span>.close();
</span>
doc<span>.getElementsByTagName("body").style.backgroundColor = 'red';</span>
Diese Methode hat bei mir nicht funktioniert.
<span>var cssLink = document.createElement("link")
</span>cssLink<span>.href = "style.css";
</span>cssLink <span>.rel = "stylesheet";
</span>cssLink <span>.type = "text/css";
</span>frames<span>['frame1'].document.body.appendChild(cssLink);</span>
Diese Methode hat für mich funktioniert.
<span>var frm = frames['frame'].document;
</span><span>var otherhead = frm.getElementsByTagName("head")[0];
</span><span>var link = frm.createElement("link");
</span>link<span>.setAttribute("rel", "stylesheet");
</span>link<span>.setAttribute("type", "text/css");
</span>link<span>.setAttribute("href", "style.css");
</span>otherhead<span>.appendChild(link);</span>
Diese Methode hat für mich funktioniert.

var iframe = top.frames [name] .document;
var CSS = ”  
"



häufig gestellte Fragen zum Ändern von CSS in Iframe -Inhalten

Warum kann ich die CSS eines Iframe aus einer anderen Domäne nicht ändern? Es verhindert ein Skript von einer Seite, die auf die Eigenschaften einer anderen Seite von einer anderen Domäne zugreift oder geändert hat. Diese Richtlinie wird implementiert, um zu verhindern, dass potenziell böswillige Skripte auf sensible Daten auf einer anderen Webseite zugreifen. Wenn Sie jedoch die Kontrolle über die Quellseite des Iframe haben, können Sie dort ein Skript hinzufügen, um Nachrichten von der übergeordneten Seite zu empfangen und die erforderlichen Änderungen vorzunehmen. Hier ist ein einfaches Beispiel:

$ ("#myiframe"). Inhalt (). Find ("Körper"). CSS ("Hintergrundfarbe", "rot");

Kann ich JavaScript anstelle von jQuery verwenden, um die CSS eines Iframe zu ändern? So können Sie es tun:

var iframe = document.getElementById ('myiframe'); Iframe.ContentWindow.Document; Der Iframe ist möglicherweise aus einer anderen Domäne. In diesem Fall können Sie das CSS aufgrund der gleichorientierten Richtlinie nicht ändern. Oder der Inhalt des Iframe wurde möglicherweise nicht vollständig geladen, als Sie versucht haben, das CSS zu ändern. Um sicherzustellen, dass der Iframe vollständig geladen ist, können Sie das Ladeereignis verwenden. Änderungen.


Wie kann ich sicherstellen, dass meine CSS -Änderungen nach dem voll geladenen Iframe angewendet werden? So können Sie es mit jQuery:
$ ("#myiframe"). On ("Load", Funktion () {
$ (this) .Contents () find ("Körper"). CSS ("Hintergrundfarbe", "Rot");
});

Kann ich die CSS des Inhalts eines Iframe ändern, wenn es sich um ein PDF handelt?

Nein, Sie können die CSS einer PDF -Datei nicht ändern. CSS ist eine Stylesheet -Sprache, die zum Beschreiben des Erscheinungsbilds und der Formatierung eines in HTML oder XML geschriebenen Dokuments verwendet wird. PDF -Dateien haben ihre eigene Formatierung und können nicht mit CSS gestylt werden.

Kann ich CSS verwenden, um die Größe eines Iframe zu ändern? So können Sie es tun:

iframe {

Breite: 500px;

Höhe: 300px; der Rand eines Iframe. So können Sie es tun:

iframe {

Rand: None;

}

Dies entzieht den Rand des Iframe.

Das obige ist der detaillierte Inhalt vonVerwenden Sie JQuery, um CSS auf Iframe -Inhalten zu ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:10 JQuery Lightbox -PluginsNächster Artikel:10 JQuery Lightbox -Plugins