Eine Seite, die sich selbst in einem iframe mit anderem css zeig
John
- javascript
Hallo Leute,
ich versuche seit geraumer Zeit es mit Hilfe von Javascript hinzubekommen, dass eine Seite sich selber in einem iframe zeigt, jedoch im iframe die css datei ausgetauscht wird. Folgender Code tauscht die css-datei bei beiden seiten (Im iframe und in der "normalen" Seite aus). Das Ziel ist, auf der website die Mobile-Variante darzustellen.
<script type="text/javascript">
if (window.self.name = 'mobileframe') {document.getElementById("standardcss").href = "tl_files/templates/xy/css/mobile.css"; document.write (self.name); }</script>
<iframe name="mobileframe" src="xyz" width="100%" height="300">lorem ipsum dolor sit amet</iframe>
<link href="tl_files/templates/materndienste/css/screen.css" id="standardcss" media="screen" rel="stylesheet" type="text/css" />
Ich fange gerade erst an Javascript zu lernen und das, was ich hier im Forum und auf anderen Seiten gefunden habe, hat leider nicht geholfen. Deshalb stelle ich hier ganz konkret meine Frage.
Vielen Dank schon einmal für Eure Hilfe,
lg,
john
Deshalb stelle ich hier ganz konkret meine Frage.
Und wie lautet die "ganz konkrete Frage"?
if (window.self.name = 'mobileframe'){
Ein beliebter Anfängerfehler (geschuldet übrigens dem Sprachdesign). Statt eines Vergleichs (==
) hast du hier eine Zuweisung (=
), deren Rückgabewert ist der zugewiesene Wert, das ist hier 'mobileframe'
und der wird immer als "wahr" (true
) erkannt.
document.getElementById("standardcss").href = "tl_files/templates/xy/css/mobile.css"; document.write (self.name); }
<link href="tl_files/templates/materndienste/css/screen.css" id="standardcss" media="screen" rel="stylesheet" type="text/css" />
Okay, hier ein ganz anderer Tipp: Statt die Pfade fest in deinen Script-Code zu integrieren, verwende alternative Stylesheets und nutze JavaScript, um eines der alternativen Stylesheets auszuwählen. Würde ich so machen, ist flexibler, du kannst das Skript besser außerhalb lagern.
Hi,
Okay, hier ein ganz anderer Tipp: Statt die Pfade fest in deinen Script-Code zu integrieren, verwende alternative Stylesheets und nutze JavaScript, um eines der alternativen Stylesheets auszuwählen.
Mal abgesehen vom Umstand, daß ich das Konzept der alternativen Stylesheets für Murks halte (jedenfalls so, wie es die Browser - bei allen Unterschieden - mom. implementiert haben): Es gibt Browser (mind. Safari & Konqueror - ob noch in den aktuellen Versionen weiß ich aber nicht), bei denen das aufgrund von Bugs nicht klappt.
Und ob ich im JS verewige "aktiviere Stylesheet X" oder "lade Stylesheet X", halte ich auch nicht für so einen großen Unterschied. =;-)
Gruß, Cybaer
Mal abgesehen vom Umstand, daß ich das Konzept der alternativen Stylesheets für Murks halte (jedenfalls so, wie es die Browser - bei allen Unterschieden - mom. implementiert haben): Es gibt Browser (mind. Safari & Konqueror - ob noch in den aktuellen Versionen weiß ich aber nicht), bei denen das aufgrund von Bugs nicht klappt.
Die aktuellen Implementationen sind tatsächlich eher schlecht, wenn überhaupt vorhanden. Das Konzept selbst finde ich eigentlich in Ordnung.
Und ob ich im JS verewige "aktiviere Stylesheet X" oder "lade Stylesheet X", halte ich auch nicht für so einen großen Unterschied. =;-)
Im JS wird gar kein Stylesheet verewigt. Die vernünftige Lösung schaut nach, ob alternative Stylesheets existieren und sammelt die Informationen. Weitere alternative Stylesheets können dann hinzugefügt werden, ohne den JavaScript-Code anzufassen.
Hi,
Weitere alternative Stylesheets können dann hinzugefügt werden, ohne den JavaScript-Code anzufassen.
Yep, hast Recht.
Gruß, Cybaer