Der folgende Beitrag wurde am 16. 10. 2006, 22:56 Uhr von benedikt.s veröffentlicht.
Guten Abend allerseits.
Folgendes Problem:
Ich habe einen iFrame mit einer eingebundenen HTML-Seite... (noch kein Problem ;-)
Ich möchte nun die CSS-Datei, auf die diese HTML-Seite zugreifen kann dynamisch festlegen.
Das ganze soll über DOM-Manipulation per JavaScript geschehen.
Ich kann bereits JavaScript dynamisch in dieser HTML-Seite erstellen.
Ebenfalls über DOM - das sieht dann so aus (und funktioniert auch wunderbar):
----
var myScript = myIFrameDocument.createElement('script');
myScript.text = '/* Hilfsmethode um Objekte auszulesen */' +
'function test() {' + 'alert(\'test\');' +
'}';
myIFrameDocument.body.appendChild(myScript);
----
Die HTML-Seite des iFrame kann dann das JavaScript nutzen.
Dasselbe Spiel wollte ich nun mit einer CSS-Datei betreiben, indem
ich ein neues Link-Element erstelle und wieder per "appendChild()" anhänge.
Sieht so aus (und funktioniert leider nicht..):
/* add css stylesheet */
var cssStyle = myIFrameDocument.createElement('link');
cssStyle.rel = "stylesheet";
cssStyle.type = "text/css";
cssStyle.href = "test.css";
myIFrameDocument.body.appendChild(cssStyle);
----
Per DOM-Inspector (FF) sehe ich im DefaulView (der HTML-Seite im iFrame) mein generiertes JavaScript - das StyleSheet finde ich hier leider nicht...
----
Mache ich hier beim Einbinden der CSS-Datei was falsch?
Oder muss der Link-Knoten im "head" der Seite erstellt werden? - Wenn ja, wie komme ich an das Head-Element?
Grüße,
Benedikt
Der folgende Beitrag wurde am 17. 10. 2006, 00:14 Uhr von globe veröffentlicht.
n'abend,
> Oder muss der Link-Knoten im "head" der Seite erstellt werden? - Wenn ja, wie komme ich an das Head-Element?
Referenzierungen gehören in den Head.var meinHead = document.getElementsByTagName('head')[0];
weiterhin schönen abend...
--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
Der folgende Beitrag wurde am 17. 10. 2006, 10:21 Uhr von benedikt.s veröffentlicht.
wunderbar, das hat geklappt!
schönen dank
Der folgende Beitrag wurde am 18. 10. 2006, 08:48 Uhr von Cybaer veröffentlicht.
Hi,
> Mache ich hier beim Einbinden der CSS-Datei was falsch?
Zusätzlich zu globes Hinweis: Das Einbinden der CSS-Regeln via Textknoten ist OK, weil es Browser gibt, die den offiziellen Weg via styleSheets-Objekt (insertRule()) nicht beherrschen. Allerdings hat der IE Probleme mit diesem "Hack": er möchte das korrekt via styleSheets erledigt wissen (hier heißt die benötigte Methode allerdings addRule()) (s. Coding: CSS-Stylesheets & -Regeln ergänzen)
Gruß, Cybaer
--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4