CSS auf iframe anwenden?

4 Antworten

Das ist kein Java Code sondern JavaScript. Er macht eigentlich genau das was Du erreichen willst. Von der Seite aus die das iframe einbindet in dem iframe eine Style-Ausgabe ändern. Ist allerdings etwas mühsam wenn Du doch auf die Seite im iframe auch Einfluss hast. Daraus ergeben sich für mich 2 Fragen:

  • Wieso passt Du den Style nicht einfach direkt in der eingebundenen Datei an?
  • Wieso verwendest Du überhaupt ein iframe, wenn es die Inhalte von der gleichen Webseite lädt?
Woher ich das weiß:Berufserfahrung
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:11

Hallo threadi,

danke für deine Antwort. Ja das Problem ist, dass ich die Hauptseite als "Referenzseite" habe und bei verschiedenen Unterseiten das iframe eingebunden habe, welches minimal anders aussehen soll als die "Referenzseite". Deshalb kann ich dort nicht die CSS Regel direkt machen.

Um nochmal auf das Script zurückzukommen:

Mit was müsste ich denn "iframe" ersetzen? Oder kann man das einfach so lassen?

0
threadi  28.06.2020, 20:13
@CoolerTyp1997

Das kannst Du so lassen, musst nur halt die dort stehenden CSS-Eigenschaften an deine Anforderungen anpassen. Du musst in deiner Seite allerdings auch jQuery eingebunden haben, denn es ist ein jQuery-Script.

1
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:26

Mal ne blöde Frage: Wie kann ich denn sichergehen, dass JQuery bei mir eingebunden ist? Meines Wissens nach ist es eingebunden durch Plugins etc. (Ich benutze Wordpress) die das auch benutzen soweit ich weiß..

Den Code habe ich wie folgt geändert:

$("iframe").contents().find("#Anker-PowerCore-10000mAh").css("display", "none");

Die CSS ID (#Anker-PowerCore-10000mAh) ist bei dem entsprechendem Element bei der Referenzseite eingetragen. Dennoch wird das Element aber nicht ausgeblendet bei dem iframe. Auch andere CSS Regeln greifen nicht..

0
threadi  28.06.2020, 20:28
@CoolerTyp1997

Wordpress verwendet jQuery, es sei denn du hast ein Plugin, welches die Einbindung unterdrückt.

Wenn das JavaScript scheinbar nicht funktioniert, dann prüfe die Konsole im Entwicklerfenster, ob dort JavaScript-Fehler gelistet sind. Wenn ja, gehe diesen nach.

0
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:33

Hmm. Das iframe wird mittels Lazy Load erst geladen, wenn man die Stelle erreicht hat. Könnte es vielleicht auch damit zusammenhängen? Bzw. habe ich das Java Script wie hier gezeigt auf der Seite eingebunden: https://www.publishingblog.ch/javascript-in-elementor-einbinden/

-> <script>$("iframe").contents().find("#Anker-PowerCore-10000mAh").css("display", "none");</script>

Das ist über dem iframe platziert. Wäre das denn so überhaupt richtig ?😅

0
threadi  28.06.2020, 20:35
@CoolerTyp1997

Wenn es per LazyLoad eingebunden wird, darfst Du es natürlich erst nach Ausführung des LazyLoad einbinden.

0
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:37

Also den Scriptcode einfach unter den iframe Code setzen? Sorry du merkst, dass ich mich damit nicht so auskenne...😅

0
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:38

Und wäre das so wie darüber beschrieben in Ordnung, wenn der Code darunter wäre?

0
CoolerTyp1997 
Fragesteller
 28.06.2020, 22:04

Aber es scheint ohne Lazy Load abgesehen davon leider auch nicht zu funktionieren... Echt merkwürdig

0

Also so wie ich das verstehe willst du seitenelemente wiederverwenden, da wäre das der Komplett falsche ansatz.

Das ganze nennt sich in der Webentwicklung u.a. "Templating":

https://en.wikipedia.org/wiki/Web_template_system

Für dieses Konzept gibt es zahlreiche implementierungen:

https://developer.mozilla.org/de/docs/Web/HTML/Element/template

https://colorlib.com/wp/top-templating-engines-for-javascript/

Edit: Wie ich sehe verwendest du Wordpress, da gibt es schon ein Templating system.

https://developer.wordpress.org/themes/template-files-section/page-template-files/

LG

Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker, Freiberufl. Softwareentwickler
CoolerTyp1997 
Fragesteller
 01.07.2020, 15:21

@FinnB132Hallo Finn,

ja du hast vom Prinzip recht. Ich hatte das damals so gemacht, weil ich keine einfache Möglichkeit gefunden habe, die Templates mit Ajax nachladen zu können und es bei iframes recht einfach ist per Plugin. Ich benutze den Elementor Page Builder für Wordpress (falls du den kennst). Ich kenne mich leider nicht mit Coden aus. Wüsstest du denn eine einfache Möglichkeit (z.B. per Plugin), wie man gwisse Elementor Templates mit Ajax nachladen könnte?

0

Du könntest eine klasse zuweisen (nicht auf den iframe sondern inhalt der anderen seite) aber die deklarationen nur auf der seite vornehmen via <style></style> wo der iframe eingefügt wird. Hab ich aber noch nie probiert kann also auch nicht sagen ob das klappt

Woher ich das weiß:Berufserfahrung – Selbstständige Tätigkeit seit 5 Jahren
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:14

Aber dann würde das meine Wissens nach leider nicht für den iframe greifen. 🤔

0

Dann musst Du schon die Ursprungsseite im gewünschten Styl formatieren.

CoolerTyp1997 
Fragesteller
 28.06.2020, 20:12

Aber über JavaScript müsste das doch eigentlich funktionieren? 🤔

0
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:15

Leider beides..

0
Cassandre66  28.06.2020, 20:21
@CoolerTyp1997

Dann lies per php nur den Quellcode der Startseite ein und schneide ihn auf die Bedürfnisse zurecht.

0
CoolerTyp1997 
Fragesteller
 28.06.2020, 20:34

Hmm so ganz verstehe ich leider nicht wie du es meinst. Da kenn ich mich leider auch nicht gut genug für aus 😅

0