Patrick Andrieu: Opera: document.write in mit display:none verstecktem Element

Beitrag lesen

Hallo alle!

Ich möchte die von einem Page-Views-Counter-Script zurückgegebene Graphik nicht anzeigen lassen (auch wenn dies ein transparentes GIF ist), weil das Script immer eine gewisse Bearbeitungszeit braucht, und in dieser Zeit wird ja ein Platzhalter gezeigt.

Also habe ich den JavaScript-Code in einem Container gepackt, dem ich die CSS-Eigenschaft display:none zuweise:

#nothing_to_see {
display:none;
}

<div id="nothing_to_see">
<script type="text/javascript">
<!--
document.write('<img src="http://example.com/cgi-bin/counter.pl?seite=testseite&ref=',escape(document.referrer),'" alt="">')
//-->
</script>
<noscript>
<img src="http://example.com/cgi-bin/counter.pl?seite=testseite">
</noscript>
</div>

Versuche mit Mozilla, FF, IE und Opera (8.54 und 9.01) und eine Auswertung der Statistik zeigen, dass bis auf die Operas alle die Anweisung ausführen: Der Besuch der "testseite" wird gezählt. Wenn ich statt display:none visibility:hidden angebe - was in diesem Fall den gleichen Effekt hat: die Graphik wird nicht gezeigt - dann sehe ich die Operas (und die anderen auch) in der Statistik.

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.

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _