Simon Gude: Real Time Beat Clock im Textmodus - Schriftfarbe/ -größe ???

hi!

ich habe ein problem mit einem javascript, daß eine real-time beatclock im textmodus
ausgibt. ich habe die beiden scripte (es sind 2 für die ausführung nötig, damit die uhr
sowohl unter "ie" als auch auf "netscape" läuft) in seperate dateien gespeichert (001.js und
002.js).

mein problem ist:

netscape zeigt mir die uhr in der standartschrift und in der standartfarbe an. wie kann ich die schriftart, die schriftfarbe sowie die schriftgröße ändern? unterscheiden sich da "internet explorer" und "netscape" bei solch einer definition des textes?

die uhr wird über folgende aufrufe aus einer hmtl datei gestartet:

<center>
<script language="JavaScript" src="001.js"></script>
<div id="MicrosoftUhr" class="Uhr"></div>
<layer id="NetscapeUhr" left=350></layer>
<script language="JavaScript" src="002.js"></script>
</center>

ich habe eine andere methode schon ausprobiert: einfügen der javascripte in die htm und die uhr per style sheets (nur bei der netscape variante möglich, da man den layer nicht anders definieren kann) definieren. daß geht auch, nur die htm wird sehr unübersichtlich.

ich würde mich über jeden hinweis freuen!! danke schon mal im voraus!!

nun folgen die beiden javascripte in den dateine 001.js und 002.js :

001.js: --->

function Clock() {
D=new Date();
hh=D.getHours();
mm=D.getMinutes();
ss=D.getSeconds();
ms=D.getTime();
ms_str_day='str'+((hh*60+mm)*60+ss)*1000;  
ms_str='str'+ms;
ms_str_ende=ms_str.substr(ms_str.length-3,ms_str.length);
ms_str_act=ms_str_day.substr(0,ms_str_day.length-3)+ms_str_ende;
ms_act=1*ms_str_act.substr(3,ms_str_day.length)+((D.getTimezoneOffset()+60)*60*1000);
beats=Math.floor(ms_act/86400);
dezi_beats=Math.floor((ms_act-(beats*86400))/8640);
centi_beats=Math.floor(((ms_act-(beats*86400))/864)-dezi_beats*10);
yy=D.getYear();
mt=D.getMonth()+1;
dd=D.getDate();
fir_pos=Math.floor(beats/100);
sec_pos=Math.floor((beats-100*fir_pos)/10);
thr_pos=Math.floor((beats-(fir_pos*100)-(sec_pos*10)));
clocktext = "@ " + fir_pos + "" + sec_pos + "" + thr_pos + ":" + dezi_beats + ":" + centi_beats

if(document.all)
document.all.MicrosoftUhr.innerHTML = clocktext;
else if(document.layers)
{
document.NetscapeUhr.document.open();
clocktext = '<span class="Uhr")>' + clocktext + '</span>';
document.NetscapeUhr.document.write(clocktext);
document.NetscapeUhr.document.close();
}
window.setTimeout("Clock()",864);}

002.,js: -->

<!--
window.setTimeout("Clock()",864);

  1. Hallo Simon

    netscape zeigt mir die uhr in der standartschrift und in der standartfarbe an. wie kann ich die schriftart, die schriftfarbe sowie die schriftgröße ändern? unterscheiden sich da "internet explorer" und "netscape" bei solch einer definition des textes?

    clocktext = '<span class="Uhr")>' + clocktext + '</span>';
    document.NetscapeUhr.document.write(clocktext);
    document.NetscapeUhr.document.close();
    }
    window.setTimeout("Clock()",864);}

    002.,js: -->

    <!--
    window.setTimeout("Clock()",864);

    Ich äußere nur einmal eine Vermutung, weil mir ähnliches schon mal begegnet ist.
    Befindet sich die Klassendefinition Uhr direkt in der Datei oder in einer externen css-Datei?

    Hier könnte eine Ursache dieses Verhaltens sein. Eine externe Definition könnte Abhilfe schaffen. Eventuell hilft auch direkt mit style=".." das Format zu schreiben.

    Viele Grüße

    Antje

    1. Hallo Antje!

      Danke für Deine Hilfe, ich habe das Problem gelößt, indem ich den
      Netscape Layer per Style Sheet so definiert habe:

      <style type="text/css">
      all.Uhr { font-family:courier; font-weight:bold; font-size:18pt; color:#999999; }
      </style>

      Es ist jetzt also keine weiter Hilfe notwendig!

      Danke und Tschüs Simon

      1. Hallo Simon

        all.Uhr { font-family:courier; font-weight:bold;

        Das ist der Fehler. Lass das "all" weg, MS IE interpretierte das frueher, jetzt nicht mehr. Und W3 hat es frueher in der CSS-Spec vorgeschlagen, heute nicht mehr. also einfach mit Punkt anfangen und dahinter normal weiter:

        .Uhr { font-family:courier; font-weight:bold; usw.

        viele Gruesse
          Stefan Muenz

        1. Hallo und Danke für Ihren Tip!

          Das ist der Fehler. Lass das "all" weg, MS IE interpretierte das frueher, jetzt nicht mehr. Und W3 hat es frueher in der CSS-Spec vorgeschlagen, heute nicht mehr. also einfach mit Punkt anfangen und dahinter normal weiter:

          .Uhr { font-family:courier; font-weight:bold; usw.

          Der Style Sheet Bereich ist doch nur für den Netscape (Layerbereich) da. Die Schrift beim Internet Explorer definiere ich doch im <body> bei dem aufruf des externen Javascriptes wie
          immer mit <tt> und <b> und <font size color....>.

          Wenn der Internet Explorer das all Objekt jetzt nicht mehr interpretiert, ist dann das Javascript noch richtig? Jedenfalls auf IE4 und Netscape 4 läuft es.

          Muss ich für den Netscape die Uhr immer noch so definieren?:

          {
          document.NetscapeUhr.document.open();
          clocktext = '<span class="Uhr")>' + clocktext + '</span>';
          document.NetscapeUhr.document.write(clocktext);
          document.NetscapeUhr.document.close();
          }

          Mit dem <span> tag definiere ich ja wieder Style Sheets für die Uhr (geht ja mit document.write() nicht mehr)

          MfG Simon Gude