Thomas Häber: unter N 4.7 Probleme mit Style bei JS

Hallo, ich mal wieder,

Habe unten folgenden Script. Nachdem ich den dynamische Layer mit Netscape 4.x aufgeben musste, da sich dieser nicht relative positionieren ließ habe ich die Zeitanzeige, bekannt aus SelfHTML 7.0 unter N4 mit document.write ausgegeben. Leider entstand dadurch ein neues Problem: Jedes mal wenn man den Browser (N4) maximiert bzw. macht man ein Fenster aus dem Maximierten Browser so verschwindet das style-Attribut der document.write(Uhrzeit) bzw. die document.write-Ausgabe der Uhrzeit ist vollständig verschwunden. Ist das ein Fehler Netscape's oder muss man die style-Attribute in Javascript feststellen?

Bitte um Aufklärung.

Hier der Code:

<html>
<head>
  <title>Datumsanagabe</title>
<script language="JavaScript" type="text/javascript">
<!--
 Wochentagname = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
 Monatsname = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");

<!-- Funktion für dynamische(s) Zeit & Datum -->
function ZeitAnzeigen(blazeit)
{
 var Jetzt = new Date();
 var Tag = Jetzt.getDate();
 var Monat = Jetzt.getMonth();
 var Jahr = Jetzt.getFullYear();
 var Stunden = Jetzt.getHours();
 var Minuten = Jetzt.getMinutes();
 var Sekunden = Jetzt.getSeconds();
 var WoTag = Jetzt.getDay();
 var Vortag  = ((Tag < 10) ? "0" : "");
 var Vormon  = ((Monat < 10) ? ".0" : ".");
 var Vorstd  = ((Stunden < 10) ? "0" : "");
 var Vormin  = ((Minuten < 10) ? ":0" : ":");
 var Vorsek  = ((Sekunden < 10) ? ":0" : ":");
 var Datum = Wochentagname[WoTag] + ", " + Vortag + Tag + ". " + Monatsname[Monat]  + " " + Jahr;
 var Uhrzeit = Vorstd + Stunden + Vormin + Minuten;

if(document.getElementById) {
   document.getElementById("Uhr").innerHTML = Uhrzeit;
   document.getElementById("Datum").innerHTML = Datum;
   window.setTimeout("ZeitAnzeigen()",1000);
   }
 else if(document.all) {
   document.all.Uhr.innerHTML = Uhrzeit;
   document.all.Datum.innerHTML = Datum;
   window.setTimeout("ZeitAnzeigen()",1000);
   }
 else if(document.layers) {
 if (blazeit == "U") document.write(Uhrzeit);
 else document.write(Datum);
 }
}

//-->
</script>
</head>
<body bgcolor="#3366FF" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<table align="center" width="200" height="36" cellspacing="0" cellpadding="0" border="0">
<tr height="18">
<td align="right"><a id="Uhr" style="font-family:Arial,Verdana;text-decoration:none;color:#FFFFFF;" href="http://www.uhrzeit.org" target="_blank"> <script language="JavaScript" type="text/javascript">if (document.layers) ZeitAnzeigen("U");</script></a></td>
</tr>

<tr height="18">
<td align="right"><a id="Datum" style="font-family:Arial,Verdana;text-decoration:none;color:#FFFFFF;" href="javascript:fensteroeffnen(&#39;nein&#39;,&#39;../extras/kalender2.html&#39;,&#39;_blank&#39;,&#39;width=240,height=270,resizable=0,scrollbars=0&#39;)"> <script language="JavaScript" type="text/javascript">if (document.layers) ZeitAnzeigen("Dat");</script></a></td>
</tr>
</table>
<script language="JavaScript" type="text/javascript">if (document.getElementById || document.all) ZeitAnzeigen();</script>
</body>
</html>

  1. Hi,

    [...]

    SelfHTML 7.0 unter N4 mit document.write ausgegeben. Leider entstand dadurch ein neues
    Problem: Jedes mal wenn man den Browser (N4) maximiert bzw. macht man ein Fenster aus
    dem Maximierten Browser so verschwindet das style-Attribut der document.write(Uhrzeit) bzw.
    die document.write-Ausgabe der Uhrzeit ist vollständig verschwunden. Ist das ein Fehler
    Netscape's oder muss man die style-Attribute in Javascript feststellen?

    Bitte im Netscape _nicht_ style="" benutzen! Das fuehrt uU zu unvorhersehbarem Verhalten, wie
    von Dir beschrieben, bis hin zu sogar Abstuerzen. Ein grossteil der Fehler und Abstuerze ist auf
    style="" zurueckzufuehren.
    Lege lieber eine Klasse an, etwa so:

    <style type="text/css">
    a.uhr
      {
      font-family:Arial,Verdana,sans-serif,courier;
      text-decoration:none;
      color:#FFFFFF;
      }
    </style>

    Waehrend der Link dann so aussieht:

    <a href="deineadresse" class="uhr">dein Anker</a>

    Ausserdem schreib am besten den kompletten Link neu, und nicht nur den Anker.

    Gruss,
     Christian
     http://wwwtech.de