HaThoVo: Kniffliges Problem:

Beitrag lesen

Die Aufgabenstellung ist folgende:

Eine Seite enthält Layer (DIVs), die - mit Javascript-Unterstützung auf- und zugeklappt werden können.

Für Benutzer ohne JS sollen die Layer natürlich sichtbar sein.

Es kommt also nur in Frage, diese Layer (<div class="AufUndZuKlapp">) per Javascript verschwinden zu lassen, und zwar möglichst schon während des Ladevorgangs, damit sie gar nicht erst auftauchen.

Die folgende Lösung funktioniert in Mozilla und Opera als Script im Kopfbereich:

<script>
TMP = document.getElementsByTagName('head')[0].appendChild(document.createElement('style'))
TXT = document.createTextNode('.Sack {display:none;}')
TMP.appendChild(TXT)
</script>

Dummerweise meckert der IE das aber an und tuts nicht. Er montiert zwar das STYLE-Element hinein, erlaubt aber keinen Textinhalt.

Also habe ich es mit einer externen Lösung versucht:

<script>
TMP = document.getElementsByTagName('head')[0].appendChild(document.createElement('link'))
with (TMP){
  setAttribute('rel','stylesheet')
  setAttribute('type','text/css')
  setAttribute('href','script.css')
}
</script>

Prima, jetzt macht es der IE, FF auch, aber... OP montiert zwar alles ordentlich rein, ignoriert aber die enthaltene Stilanweisung.

Wer weiß eine Lösung, wie man alle drei dazu bekommt? Ich möchte vermeiden, daß die Layer beim Laden angezeigt werden müssen und erst bei "onload" zuklappen. Außerdem möchte ich die entsprechenden Silanweisungen natürlich nicht mehrfach vorhalten müssen.