CarstenP: Opera: document.write in mit display:none verstecktem Element

Beitrag lesen

Hallo Patrick,

Als neugieriger Mensch möchte ich einfach wissen, warum document.write von den Operas in diesem Fall ignoriert wird. Andere JavaScript-Anweisungen wie ein alert oder mittels getElementById geänderte style-Eigenschaften sichtbarer Elemente funktioniert tadellos.

Elemente, die per display:none; ausgeblendet werden, bilden keine "Box" mehr. Opera denkt sich nun "Wenn keine Box da ist, dann muß ich mich auch um ihren Inhalt nicht weiter kümmern." Dein Problem ist daher hauptsächlich auch, daß das Bild gar nicht erst geladen wird (Du würdest denselben Effekt beobachten, wenn Du den Code für das Bild nicht per JavaScript generieren würdest, sondern es direkt per HTML-Code innerhalb des versteckten div-Elementes eingebunden werden würde.

Deine übrigen Tests (alert, Änderung der Style-Eigenschaften sichtbarer Elemente) haben nichts mit dem Inhalt der nicht vorhandenen Box zu tun und werden daher normal ausgeführt.

Eine weitere Mögglichkeit, Elemente zu verstecken, ohne daß sie Platz einnehmen, aber weiterhin "da" sind wäre die folgende (oder ähnliches):

#nothing_to_see {  
  height:0;  
  width:0;  
  overflow:hidden;  
  position:absolute;  
  left:-10000px;  
}

Viele Grüße
Carsten