Antje Hofmann: Netscape bastelt sich seinen Absturz selber :(

Beitrag lesen

Hallo Jens,

<TD width="10%" class="THeader">Bild<
/TD>

dieses Verhalten entsteht genau dann, wenn im Header mit document.write js-Dateien geschrieben und dann geladen werden.

Es hat mich mal ein ganzes Wochenende gekostet, dem auf die Spur zu kommen.

Ursache: der Navigator macht bei externen js-Dateien einen Zeilenumbruch und zwar so:
<script language="JavaScript" src="homepage.js" type="text/javascript">
                                   <--diese Leerzeile fügt der Navi ein
</script>

beim normalen Einbinden stellt dies kein Problem dar. Schreibt man aber die Datei aber mittels document.write fügt der Navi genau dann die Leerzeile ein, wenn die js-Datei geladen wurde. Da hängt soweit ich weiß mit den internen Verarbeitungsmodus zusammen. Erwischt der Navi eine ungünstige Stelle zerschlägt es das Layout.
Das Problem: du kannst den Umbruchpunkt nicht genau bestimmen, da er abhängig von der Netzgeschwindigkeit und dem Clientrechner ist.

Abhilfe:
(1) eine js-Datei für alle Browser und auf document.write im Header verzichten
(2) Quelltext weit auseinanderschreiben, daß vermindert die Trefferwahrscheinlichkeit
(3) js-Datei für den Navi normal einbinden und für den ie über document.write. Bei gleichen Funktionsnamen sollte eigentlich die Navivariante überschrieben werden. Getestet habe ich das nicht, da ich Variante 1 bevorzuge.

Viele Grüße

Antje