Markus Franzen: 3er-Browser sollen JavaSkript mein ignorieren

Hallo zusammen!

Erstmal ein frohes neues Jahr an alle Forumer!

Mein Problem ist folgendes:

Ich habe auf meiner Homepage ein JavaSkript (einen Timer) eingebaut.
Er ist ein "Lückenfüller" meiner Navigationsleiste für 17 Zöller und größer.
Nun funktioniert dieses Skript wohl erst aber der 4. Browser-Generation einwandfrei, d.h. auf meinem Netscape 3.0 ist es ziemlich verzerrt.

Ich habe mir jetzt überlegt, das man das Skript doch bestimmt nur Browsern ab Version 4.x zugänglich machen kann.
Ich will also eine Abfragebedingung einbauen, so dass das Skript bei den 3-er Browsern ignoriert wird.
Da ich von JavaSkript noch so gut wie keine Ahnung habe, wäre es nett, wenn mir jemand von euch sagen könnte, welchen Befehl ich am Anfang des Skriptes einbauen muss.

Ich habe es mal mit

if(navigator.appVersion.substring(0,1) == "4")

versucht ( direkt unter dem <!-- ) - hat aber nicht gefunzt.

Besten Dank!!

Markus

Hier also das Skript:

<SCRIPT LANGUAGE="JavaScript">
<!--

// 1996 von Tobe Toben, mailto:Tobe.Toben@artis.uni-oldenburg.de
// 1998 angepaßt für eine Anzeige mit GIF-Ziffern durch:
// Patrick Andrieu, mailto:Patrick.Andrieu@okay.net
//

var TimerID = null;
var timerRunning = false;
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var firsttime = seconds + (60*minutes) + (3600*hours);
    for(ii=0; ii<10; ii++) {
      img=new Image();
      img.src="gif/tc_"+ii+".gif";
    }

function startclock() {
stopclock();
showtime();
}

function stopclock() {
if(timerRunning) clearTimeout(timerID);
timerRunning=false;
}

function showtime() {
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var nowtime = seconds + (60*minutes) + (3600*hours) ;
if (hours==0 && minutes == 0 && seconds == 0){firsttime-=86400;}
var difftime = nowtime - firsttime;
var Dhours = 0;
var Dminutes = 0;
while (difftime > 3599) {Dhours+=1;difftime-=3600};
while (difftime > 59) {Dminutes+=1;difftime-=60};
var Dseconds = difftime;

var time = ""
// time += ((Dhours < 10) ? "0" : "") + Dhours
time += ((Dminutes < 10) ? "0" : "") + Dminutes
time += ((Dseconds < 10) ? ":0" : ":") + Dseconds
timerID = setTimeout("showtime()", 1000);
timerRunning = true;
show("s", 2, difftime);
show("m", 2, Dminutes);
}
  function show(was, anz, wert) {
    for(ii=1; ii<=anz; ii++) {
      ziff=wert%10;
      name=was+ii;
document.images[name].src="gif/tc_"+ziff+".gif";
      wert=(wert-ziff)/10;
}
}

// Ende -->
</SCRIPT>

  1. Ich habe mir jetzt überlegt, das man das Skript doch bestimmt nur Browsern ab Version 4.x zugänglich machen kann.

    Ich habe es mal mit

    if(navigator.appVersion.substring(0,1) == "4")

    versucht ( direkt unter dem <!-- ) - hat aber nicht gefunzt.

    Hi Markus,

    Müßte klappen, könnte mir aber vorstellen, daß du die Klammern vergessen hast.
    Die Anweisungen die ausgeführt werden sollen, wenn die Bedingung erfüllt ist, müssen von {  und } gerahmt werden.

    Tschau Ralph.

  2. Hallo zusammen!

    Erstmal vielen Dank für die raschen Antworten.
    Nur leider klappt das irgendwie nicht...

    Das besagte Skript beginnt so:

    <SCRIPT LANGUAGE="JavaScript">
    <!--

    var TimerID = null;
    var timerRunning = false;
    var now = new Date();
    ...

    Also habe ich zwischen dem "<!--" und dem "var TimerID = Null;" folgendes eingebaut:

    if(navigator.appVersion.substring(0,1) == "4")

    {

    Am Ende des Skriptes

    ...
    document.images[name].src="gif/tc_"+ziff+".gif";
          wert=(wert-ziff)/10;
    }
    }

    // Ende -->

    habe ich dann folgendes drangehängt:

    }

    else

    {
    Schade, das JS funzt bei dir nicht...
    }

    </SCRIPT>

    Die Folge ist, dass Netscape 4.5 mir das Skript nicht mehr ausführt (die Ziffern des Timers werden nicht mehr geladen) und Netscape 3.0 kommt mit den Fehlermeldungen "syntax error. function startclock() {" und "startclock is not defined".
    Das habe ich wohl vergessen zu erwähnen: Für den Timer musste ich im BODY ein onLoad="startclock();return true;" einbauen. Ausserdem ist in besagter HTML-Datei noch ein JS untergebracht.
    Was mache ich falsch??

    Wer sich das ganze (von mir jetzt veränderte) mal online anschauen will: http://Markus.Franzen.net/javaskript.htm

    Wenn jemand eine Lösung weiss: 1000 Dank im voraus!

    Markus

    1. Hallo Markus!

      Also das hier:

      }

      else

      {
      Schade, das JS funzt bei dir nicht...
      }

      </SCRIPT>

      kann schon mal nicht funktionieren. Von alleine schreibt Dir ein JavaScript nichts auf der HTML-datei drauf. Da brauchst Du "document.write".

      Also eine Funktion definieren, die an der  Stelle aufgerufen wird, wo der unter document.write definierte Text erscheinen soll.

      Ich hoffe, ein Experte berichtigt mich, aber ich könnte mir vorstellen, daß es in etwa so aussieht:

      else
      {
      function notimer(){
         document.write('sorry, pech gehabt und blabla')
      }
      }
      </script>

      an besagter stelle kommt dann:
      <p>
      <script language="JavaScript">
      <!--
      notimer()
      // -->
      </script>
      </p>

      Bis danndann

      (Nicht verzagen, wir finden eine Lösung!
      Hyvää huomenta. Guten Morgen. Ich begrüße dich um 01:13 Uhr.)

      PAF (patrickausfrankfurt)

      1. Hi PAF und alle anderen!

        Tja, Patricks Lösungsvorschlag funktioniert auch nicht richtig, leider.
        Habe jetzt alles eingebaut.

        AM ANFANG:

        <SCRIPT LANGUAGE="JavaScript">
        <!--

        if(navigator.appVersion.substring(0,1) == "4")

        {

        var TimerID = null;
        ...

        AM ENDE:

        }

        else
        {
        function notimer(){
           document.write('sorry, pech gehabt und blabla')
        }
        }

        // Ende -->

        </SCRIPT>

        Im BODY steht weiterhin <BODY onLoad="startclock();return true;">.

        An der Stelle, wo das JS aufgerufen wird, steht dann noch die Alternative:

        <script language="JavaScript">
        <!--
        notimer()
        // -->
        </script>

        ERGEBNIS:

        NN 4.5 führt das Skript jetzt wieder richtig aus, allerdings zeigt er mir auch den Alternativtext an.
        NN 3.0 gibt weiterhin die Fehlermeldungen (sie Eintrag vorher) aus.

        Online ist die oben durchgeführte Änderung zu sehen unter: http://Markus.Franzen.net/javaskript1.htm

        Markus

      2. Hallo,

        (Nicht verzagen, wir finden eine Lösung!

        Na dann ...

        Also eine Funktion definieren, die an der  Stelle aufgerufen wird, wo der unter document.write definierte Text erscheinen soll.

        Ja, oder direkt document.write() dort unterbringen.

        Ich hoffe, ein Experte berichtigt mich, aber ich könnte mir vorstellen, daß es in etwa so aussieht:
        else
        {
        function notimer(){
           document.write('sorry, pech gehabt und blabla')
        }

        Nein, nicht die Funktion selbst in den else-Zweig, sondern deren Aufruf, also
           else
              notimer();
        Und irgendwo (am besten oben bei den anderen)  muss es dann die Funktion notimer() geben.

        Aber ich habe mir nach dieser Riesendebatte die Seite mal angesehen.
        Ich sehe keine Notwendigkeit, nur 4er zuzulassen, Navi3 kann das bestimmt auch recht ordentlich.
        Damit reicht naemlich eine simple Abfrage, ob der Browser das Image-Objekt kennt (braucht man, weil Grafiken in dieser Zeitanzeige getauscht werden.

        Das hier sollte klappen:
           <TABLE>
           ...  
           Hier steht die Tabelle mit den Zeitzaehlgrafiken
           ...
           </TABLE>
           <SCRIPT language="JavaScript">
           <!--
           if (!document.images)
              document.write('sorry, pech gehabt und blabla<BR>')
           // -->
           </SCRIPT>

        Funktion notimer()  habe ich gar nicht erst geschrieben, Code direkt langt hier vollkommen.
        Wenn Du darauf bestehst, dass auch Navigator 3 ausgeschlossen werden soll, dann
        statt
           if (!document.images)
           if ((!document.all) && (!document.layers))

        Weil ich's nun mal nicht lassen kann, noch meine ganz persoenliche Ansicht dazu <g>:
        Ich wuerde sowas anders machen.
        Wozu muss man dem Benutzer sagen, dass er Pech hat?
        Wenn man die ganze Zeitzaehl-Tabelle mit JavaScript ausgibt, und zwar so, dass nur die Browser was tun, die man haben will, dann klappt das auch.
        Die anderen (aeltere Browser, abgeschaltetes JS) merken gar nicht, dass was fehlt.
        Bei  so Zusatzinformationen oder manchen Effekten, die innerhalb einer Seite nicht lebensnotwenidg sind, reicht das IMHO vollkommen. Wozu die Leute darauf hinweisen? Ist eben einfach fuer die nicht da.
        Anders, wenn Wichtiges oder zumindest durchaus Interessantes verlorengeht.
        Dann benutze ich alternative Texte (aeltere Browser) und <NOSCRIPT> (kein JS).
        Ob ich es auf die Spitze treibe, noch darueber nachdenke, extra fuer den inzwischen wirklich alten Navigator 2 (der zeigt <NOSCRIPT> auch bei eingeschaltetem JS an) mir was ausdenke, das entscheide ich im Einzelfall. Man kann's wohl in der Regel inzwischen lassen.

        Christine

        PS: Wenn was nicht klappt, schau mal bitte die Klammern in Deinem Script durch. Ich bin nicht sicher, aber irgendwie sah mir das aus, als wuerde da was nicht ganz aufgehen.

        1. Hallo Christine!

          Zunächst freue ich mich immer, von Dir hier zu lesen, das mußte einmal gesagt werden, denn Deine Erklärungen sind immer sehr viel wert.

          Also eine Funktion definieren, die an der  Stelle aufgerufen wird, wo der unter document.write definierte Text erscheinen soll.

          Ja, oder direkt document.write() dort unterbringen.

          Na, dann lag ich gar nicht so verkehrt... (es war ja nur eine Idee)

          Nein, nicht die Funktion selbst in den else-Zweig, sondern deren Aufruf, also
             else
                notimer();
          Und irgendwo (am besten oben bei den anderen)  muss es dann die Funktion notimer() geben.

          Ich hätte mit Sicherheit gemerkt, daß es nicht so klappt, wenn ich die Zeit gehabt hätte, auch auszuprobieren, was ich da geschrieben hatte.

          Aber ich habe mir nach dieser Riesendebatte die Seite mal angesehen.
          Ich sehe keine Notwendigkeit, nur 4er zuzulassen,

          Markus hatte die Frage gestellt... aber die Wortwahl "pech gehabt" war von mir: es war mir aber klar, daß Markus es so nie geschrieben hätte, und sollte nur reines Textbeispiel sein.

          Damit reicht naemlich eine simple Abfrage, ob der Browser das Image-Objekt kennt (braucht man, weil Grafiken in dieser Zeitanzeige getauscht werden.

          Das hier sollte klappen:
             <TABLE>
             ...  
             Hier steht die Tabelle mit den Zeitzaehlgrafiken
             ...
             </TABLE>
             <SCRIPT language="JavaScript">
             <!--
             if (!document.images)
                document.write('sorry, pech gehabt und blabla<BR>')
             // -->
             </SCRIPT>

          Das probiere ich mal nachher...

          Dann benutze ich alternative Texte (aeltere Browser) und <NOSCRIPT> (kein JS).
          Ob ich es auf die Spitze treibe, noch darueber nachdenke, extra fuer den inzwischen wirklich alten Navigator 2 (der zeigt <NOSCRIPT> auch bei eingeschaltetem JS an) mir was ausdenke, das entscheide ich im Einzelfall. Man kann's wohl in der Regel inzwischen lassen.

          So habe ich es auch gehandhabt auf Backfire's Contactside: einen Noscript-Bereich definiert, wo der User einen Verweis zu einer Seite findet, wo dann die Bilder zu sehen sind, die JS-User sonst in den Zusatzfenstern öffnen können.

          Aber die ganze Debatte war insofern lehrreich, als daß ich seit kurzem einen JavaScript-Ticker auf meinen Atomic Eggs habe, der beim IE 3 (so wurde mir berichtet) zu einer Fehlermeldung führt. Dann werde ich wohl auch so eine Abfrage brauchen.

          Aber, um noch mal aufs Image-Objekt zu kommen (beim IE 3)...

          1.) Der Funcounter ist nicht darauf basiert, oder? Die "z[]" beziehen sich nur auf die Zahlen, wonach die (nummerierten) GIFs aufgerufen werden. Ich sehe im Script keinen "new image"...?

          2.) Der Bildwechsel auf der paf3.htm dagegen funktioniert nicht, weil da aufs image-Objekt zurückgegriffen wird, richtig?

          Bis danndann

          PAF (patrickausfrankfurt)

          P.S.: Die Mehl bezüglich "zurück ins Frameset" angekommen? (Bezug war Deine Antwort auf Sandra - und mich, jetzt alles in der jüngsten Alte Themen-Datei)

  3. Ich habe mir jetzt überlegt, das man das Skript doch bestimmt nur Browsern ab Version 4.x zugänglich machen kann.
    Ich will also eine Abfragebedingung einbauen, so dass das Skript bei den 3-er Browsern ignoriert wird.
    Da ich von JavaSkript noch so gut wie keine Ahnung habe, wäre es nett, wenn mir jemand von euch sagen könnte, welchen Befehl ich am Anfang des Skriptes einbauen muss.

    Ich hab mir mal deine Seite zu Gemüte geführt und den Code umgeschrieben.
    Das Script funktioniert jetzt mit Navigator 3.x, 4.x (getestet), mit Explorer 4.x (nicht getestet, aber wahrscheinlich),
    mit Opera 3.21 und 3.5(getestet). Es funktioniert nicht mit Explorer 3.x (weil der das images-Objekt nicht kennt)
    und auch nicht mit Star Office 4.0 (keine Ahnung warum dem das nicht gefällt).
    In diesen Browsern gibt es jetzt keine Fehlermeldungen mehr und die Uhr wird nicht ausgegeben.
    Ich hoffe alles zu deiner Zufriedenheit (schreib mal wenn ja oder wenn nicht).

    hier der Code, der genauso einschließlich des Script_Bereiches weiter unten zu übernehmen ist.(am besten kopieren):

    <HTML>
    <HEAD>
    </HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    <!--

    // 1996 von Tobe Toben, mailto:Tobe.Toben@artis.uni-oldenburg.de
    // 1998 angepaßt für eine Anzeige mit GIF-Ziffern durch:
    // Patrick Andrieu, mailto:Patrick.Andrieu@okay.net
    //
    var TimerID = null;
    var timerRunning = false;
    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();
    var firsttime = seconds + (60*minutes) + (3600*hours);
    if(document.images && navigator.userAgent.indexOf('StarOffice') == -1 ){
        for(ii=0; ii<10; ii++) {
          img=new Image();
          img.src="gif/tc_"+ii+".gif";
        }
    }
    function startclock() {
    stopclock();
    showtime();
    }

    function stopclock() {
    if(timerRunning) clearTimeout(timerID);
    timerRunning=false;
    }

    function showtime() {
    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();
    var nowtime = seconds + (60*minutes) + (3600*hours) ;
    if (hours==0 && minutes == 0 && seconds == 0){firsttime-=86400;}
    var difftime = nowtime - firsttime;
    var Dhours = 0;
    var Dminutes = 0;
    while (difftime > 3599) {Dhours+=1;difftime-=3600};
    while (difftime > 59) {Dminutes+=1;difftime-=60};
    var Dseconds = difftime;

    var time = ""
    // time += ((Dhours < 10) ? "0" : "") + Dhours
    time += ((Dminutes < 10) ? "0" : "") + Dminutes
    time += ((Dseconds < 10) ? ":0" : ":") + Dseconds
    timerID = setTimeout("showtime()", 1000);
    timerRunning = true;
    show("s", 2, difftime);
    show("m", 2, Dminutes);
    }
      function show(was, anz, wert) {
        for(ii=1; ii<=anz; ii++) {
          ziff=wert%10;
          name=was+ii;
    document.images[name].src="gif/tc_"+ziff+".gif";
          wert=(wert-ziff)/10;
    }
    }
    // Ende -->
    </SCRIPT>
    <BODY onLoad="if(document.images && navigator.userAgent.indexOf('StarOffice') == -1)
    {startclock();return true;}">
    <BR><BR><BR><BR>
    <SCRIPT LANGUAGE="JavaScript">
    if(document.images && navigator.userAgent.indexOf('StarOffice') == -1 ){
    document.write("<TABLE WIDTH='120'><TR> <TD> <CENTER>"
    +"<FONT FACE='Arial,Helvetica' SIZE='-2'>Du bist schon</FONT></CENTER><CENTER>"
    +"<TABLE CELLSPACING=0 CELLPADDING=0 VALIGN=TOP><TR><TD VALIGN='MIDDLE'>"
    +"<IMG SRC='gif/tc_x.gif' NAME=m2 HEIGHT=21 WIDTH=16></TD>"
    +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_x.gif' NAME=m1 HEIGHT=21 WIDTH=16></TD>"
    +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tcm.gif' HEIGHT=21 WIDTH=9></TD>"
    +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_x.gif' NAME=s2 HEIGHT=21 WIDTH=16></TD>"
    +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_x.gif' NAME=s1 HEIGHT=21 WIDTH=16></TD>"
    +"</TR></TABLE><CENTER><CENTER><FONT FACE='Arial,Helvetica' SIZE='-2'>"
    +"Minuten hier</FONT></CENTER></CENTER></TD></TR></TABLE>")}
    </SCRIPT>
    </BODY>

    </HTML>

    Tschau Ralph.

    1. Hallo Ralph!

      Ich hab mir mal deine Seite zu Gemüte geführt und den Code umgeschrieben.

      Zunächst vielen Dank für die Mühe, die Du Dich für Markus machst.

      Ich verfolge das natürlich mit regem Interesse und danke Dir auch persönlich, weil ich ja dieses Script von Tobe Toben, der ursprünglich einen Zähler in einem Forumularfeld angezeigt wird, für eine Bildanzeige angepaßt habe.

      Wie, möchte ich lieber nicht erzählen, aber als absoluter JS-laie muß man halt sein Unwissen durch Ausdauer kompensieren.

      Daher würde ich mich nicht wundern, wenn der Zähler-Script nicht 100%-ig "sauber" ist: ich habe im  Grunde zwei Scripts zusammengefügt (aus dem einen die function show() raus und in das von Tobe Toben rein) und so lange herumprobiert bis es klappte.

      Als ich eben Dein Beispiel kopiert habe, und bei mir probierte, hatte ich zunächst ein negatives Erlebnis: es kam weder bei IE 4 noch NS 4.5 zu einer Fehlermeldung, aber es wurden keine Bilder angezeigt. Irgendwie erinnerte mich das an die Zeit (ist nun einige Wochen her), als ich das Script anpassen wollte...

      Aber dann... ich hatte die GIFs im selben Verzeichnis, daher konnte das mit "gif/tc_x" bei mir nicht funzen!!!

      Das Script funktioniert jetzt mit Navigator 3.x, 4.x (getestet), mit Explorer 4.x (nicht getestet, aber wahrscheinlich),
      mit Opera 3.21 und 3.5(getestet). Es funktioniert nicht mit Explorer 3.x (weil der das images-Objekt nicht kennt)
      und auch nicht mit Star Office 4.0 (keine Ahnung warum dem das nicht gefällt).
      In diesen Browsern gibt es jetzt keine Fehlermeldungen mehr und die Uhr wird nicht ausgegeben.

      Leider konnte ich es mit den älteren Browser nicht prüfen, da IE 4 und IE 3 nicht zusammen zu installieren gehen, und blöderweise habe ich meine andere NS-Version mit der 4.5er überschrieben...

      Aber mit StarOffice 5.0: der bringt beim OriginalScript von Tobe Toben die Uhr zur Anzeige (also im Formfeld), bringt aber eine Fehlermeldung bei "meinem" Script mit den GIFs. Dein Beispiel aber wird anstandslos OHNE Fehlermeldung (und ohne Anzeige) als reinweiße Seite dargestellt.

      Also: es klappt alles!

      Jetzt müßte Markus es nur noch bei sich einbauen!

      Nochmals Danke und bis danndann

      PAF (patrickausfrankfurt)

      Ich hoffe alles zu deiner Zufriedenheit (schreib mal wenn ja oder wenn nicht).

      hier der Code, der genauso einschließlich des Script_Bereiches weiter unten zu übernehmen ist.(am besten kopieren):

      <HTML>
      <HEAD>
      </HEAD>
      <SCRIPT LANGUAGE="JavaScript">
      <!--

      »»

      // 1996 von Tobe Toben, mailto:Tobe.Toben@artis.uni-oldenburg.de
      // 1998 angepaßt für eine Anzeige mit GIF-Ziffern durch:
      // Patrick Andrieu, mailto:Patrick.Andrieu@okay.net
      //
      var TimerID = null;
      var timerRunning = false;
      var now = new Date();
      var hours = now.getHours();
      var minutes = now.getMinutes();
      var seconds = now.getSeconds();
      var firsttime = seconds + (60*minutes) + (3600*hours);
      if(document.images && navigator.userAgent.indexOf('StarOffice') == -1 ){
          for(ii=0; ii<10; ii++) {
            img=new Image();
            img.src="gif/tc_"+ii+".gif";
          }
      }
      function startclock() {
      stopclock();
      showtime();
      }

      function stopclock() {
      if(timerRunning) clearTimeout(timerID);
      timerRunning=false;
      }

      function showtime() {
      var now = new Date();
      var hours = now.getHours();
      var minutes = now.getMinutes();
      var seconds = now.getSeconds();
      var nowtime = seconds + (60*minutes) + (3600*hours) ;
      if (hours==0 && minutes == 0 && seconds == 0){firsttime-=86400;}
      var difftime = nowtime - firsttime;
      var Dhours = 0;
      var Dminutes = 0;
      while (difftime > 3599) {Dhours+=1;difftime-=3600};
      while (difftime > 59) {Dminutes+=1;difftime-=60};
      var Dseconds = difftime;

      var time = ""
      // time += ((Dhours < 10) ? "0" : "") + Dhours
      time += ((Dminutes < 10) ? "0" : "") + Dminutes
      time += ((Dseconds < 10) ? ":0" : ":") + Dseconds
      timerID = setTimeout("showtime()", 1000);
      timerRunning = true;
      show("s", 2, difftime);
      show("m", 2, Dminutes);
      }
        function show(was, anz, wert) {
          for(ii=1; ii<=anz; ii++) {
            ziff=wert%10;
            name=was+ii;
      document.images[name].src="gif/tc_"+ziff+".gif";
            wert=(wert-ziff)/10;
      }
      }
      // Ende -->
      </SCRIPT>
      <BODY onLoad="if(document.images && navigator.userAgent.indexOf('StarOffice') == -1)
      {startclock();return true;}">
      <BR><BR><BR><BR>
      <SCRIPT LANGUAGE="JavaScript">
      if(document.images && navigator.userAgent.indexOf('StarOffice') == -1 ){
      document.write("<TABLE WIDTH='120'><TR> <TD> <CENTER>"
      +"<FONT FACE='Arial,Helvetica' SIZE='-2'>Du bist schon</FONT></CENTER><CENTER>"
      +"<TABLE CELLSPACING=0 CELLPADDING=0 VALIGN=TOP><TR><TD VALIGN='MIDDLE'>"
      +"<IMG SRC='gif/tc_x.gif' NAME=m2 HEIGHT=21 WIDTH=16></TD>"
      +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_x.gif' NAME=m1 HEIGHT=21 WIDTH=16></TD>"
      +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tcm.gif' HEIGHT=21 WIDTH=9></TD>"
      +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_x.gif' NAME=s2 HEIGHT=21 WIDTH=16></TD>"
      +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_x.gif' NAME=s1 HEIGHT=21 WIDTH=16></TD>"
      +"</TR></TABLE><CENTER><CENTER><FONT FACE='Arial,Helvetica' SIZE='-2'>"
      +"Minuten hier</FONT></CENTER></CENTER></TD></TR></TABLE>")}
      </SCRIPT>
      </BODY>

      </HTML>

      Tschau Ralph.

    2. Hallo zusammen!

      Also erst mal ein ganz herzliches Dankeschön an Ralph, der sich da eine Riesenarbeit aufgehalst hat und mir das JS umgeschrieben hat und an Christine, die Ihren fachmännischen Rat beigetragen hat. Und natürlich PAF, der mich heute Abend "vertreten" hat. ;-)

      Ich habe das Skript gleich in meine HTML-Datei eingebaut (zu sehen unter http://Markus.Franzen.net und dann mit NN 3.0, 4.5, dem IE 4.01 und Opera 3.21 getestet. In 4 der 5 Browser funktioniert es hervorragend - leider ist es im NN 3 immer noch verrzerrt...

      Das ganze sieht bei ihm so aus: <img src="../src/xnoimg.gif" alt="">

      Das wundert mich in sofern, als das doch die Größenangaben der einzelnen Grafiken in der Tabelle angegeben sind (HEIGHT=21 und WIDTH=16).

      Weiss da jemand von euch vielleicht noch weiter wie ich es richtig darstellen kann bzw. wenn das nicht funzt, wie ich die Browser 3 von Netscape und IE auschließen kann?

      Vielen Dank nochmal!

      Markus

      1. Hallo,

        Weiss da jemand von euch vielleicht noch weiter wie ich es richtig darstellen kann bzw. wenn das nicht funzt, wie ich die Browser 3 von Netscape und IE auschließen kann?

        Warum der Navi3 das nicht richtig darstellt, ist mir absolut unklar.
        Hat das mal wer anders ausprobiert? Ich habe leider gerade keinen Navi3 zur Verfuegung.
        Einzige Idee: Du hast noch irgendwelche alten Grafiken im Cache. Kann das sein?
        Ob es das aber ist? Fraglich!
        Wie Du den am Ende auch ausschliessen kannst, das habe ich gestern schon geschrieben.
        Guck doch nochmal rein, bitte.
        Aber an sich muss der das auch koennen. Die Ursache waere interessant.

        Christine

      2. Das wundert mich in sofern, als das doch die Größenangaben der einzelnen Grafiken in der Tabelle angegeben sind (HEIGHT=21 und WIDTH=16).

        Weiss da jemand von euch vielleicht noch weiter wie ich es richtig darstellen kann bzw. wenn das nicht funzt, wie ich die Browser 3 von Netscape und IE auschließen kann?

        Hi Markus,
        ich bin ja hartnäckig, darum noch mal etwas geändert. Jetzt sollte es aber wirklich keine Probleme mehr geben. Das Script funktionierte auch vorher schon mit Netsi 3.x  Dein Problem könnte die spezielle Einbindung in deiner Seite gewesen sein. Es gab nämlich das Problem, daß das Bild "gif/tc_x.gif" nicht in deinem Verzeichnis auf dem Server existierte. Netsi 3.x hat wegen des nichtexistenden Bildes -warum auch immer- die Bilder größer dargestellt als erwünscht. Dadurch gab es möglicherweise ein Platzproblem und die Bilder wurden ineinandergeschoben. Dies habe ich nun gelöst, indem ich als Anfangsbild jeweils "gif/tc_0.gif" festgesetzt habe. Die Anzeige ist nun in allen Browsern gleichgroß und funktioniert hoffentlich tadellos. Wenn nicht, du weißt ja, schreib wieder - wenn ja schreib auch, dann kann ich wieder ruhig schlafen ;-)

        Hier nochmal der im unteren Bereich leicht veränderte Code:

        <HTML>
        <HEAD>
        </HEAD>
          
        <SCRIPT LANGUAGE="JavaScript">
        <!--

        // 1996 von Tobe Toben, mailto:Tobe.Toben@artis.uni-oldenburg.de
        // 1998 angepaßt für eine Anzeige mit GIF-Ziffern durch:
        // Patrick Andrieu, mailto:Patrick.Andrieu@okay.net
        //
        var TimerID = null;
        var timerRunning = false;
        var now = new Date();
        var hours = now.getHours();
        var minutes = now.getMinutes();
        var seconds = now.getSeconds();
        var firsttime = seconds + (60*minutes) + (3600*hours);
        if(document.images && navigator.userAgent.indexOf('StarOffice') == -1 ){
            for(ii=0; ii<10; ii++) {
              img=new Image();
              img.src="gif/tc_"+ii+".gif";
            }
        }
        function startclock() {
        stopclock();
        showtime();
        }

        function stopclock() {
        if(timerRunning) clearTimeout(timerID);
        timerRunning=false;
        }

        function showtime() {
        var now = new Date();
        var hours = now.getHours();
        var minutes = now.getMinutes();
        var seconds = now.getSeconds();
        var nowtime = seconds + (60*minutes) + (3600*hours) ;
        if (hours==0 && minutes == 0 && seconds == 0){firsttime-=86400;}
        var difftime = nowtime - firsttime;
        var Dhours = 0;
        var Dminutes = 0;
        while (difftime > 3599) {Dhours+=1;difftime-=3600};
        while (difftime > 59) {Dminutes+=1;difftime-=60};
        var Dseconds = difftime;

        var time = ""
        // time += ((Dhours < 10) ? "0" : "") + Dhours
        time += ((Dminutes < 10) ? "0" : "") + Dminutes
        time += ((Dseconds < 10) ? ":0" : ":") + Dseconds
        timerID = setTimeout("showtime()", 1000);
        timerRunning = true;
        show("s", 2, difftime);
        show("m", 2, Dminutes);
        }
          function show(was, anz, wert) {
            for(ii=1; ii<=anz; ii++) {
              ziff=wert%10;
              name=was+ii;
        document.images[name].src="gif/tc_"+ziff+".gif";
              wert=(wert-ziff)/10;
        }
        }
        // Ende -->
        </SCRIPT>

        <BODY TEXT="#000000" BGCOLOR="#88F0F9" LINK="#0000EE" VLINK="#551A8B"
          ALINK="#FF0000" BACKGROUND="jpg/hintergrlinks.jpg"
        onLoad="if(document.images && navigator.userAgent.indexOf('StarOffice') == -1) {startclock();return true;}">

        <BR><BR><BR><BR>
        <SCRIPT LANGUAGE="JavaScript">
        if(document.images && navigator.userAgent.indexOf('StarOffice') == -1 ){
        document.write("<TABLE WIDTH='120'><TR> <TD> <CENTER>"
        +"<FONT FACE='Arial,Helvetica' SIZE='-2'>Du bist schon</FONT></CENTER><CENTER>"
        +"<TABLE CELLSPACING=0 CELLPADDING=0 VALIGN=TOP><TR><TD VALIGN='MIDDLE'>"
        +"<IMG SRC='gif/tc_0.gif' NAME=m2 WIDTH=16 HEIGHT=21></TD>"
        +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_0.gif' NAME=m1 WIDTH=16 HEIGHT=21 ></TD>"
        +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tcm.gif' HEIGHT=21 WIDTH=9></TD>"
        +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_0.gif' NAME=s2 HEIGHT=21 WIDTH=16></TD>"
        +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_0.gif' NAME=s1 HEIGHT=21 WIDTH=16></TD>"
        +"</TR></TABLE><CENTER><CENTER><FONT FACE='Arial,Helvetica' SIZE='-2'>"
        +"Minuten hier</FONT></CENTER></CENTER></TD></TR></TABLE>")}
        </SCRIPT>
        </BODY>
        </HTML>

        Tschau Ralph, der Schlaflose.

        1. Hallo Ralph!

          Freu, jubel, tanz auf dem Tisch: ES FUNKTIONIERT!!!

          :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)

          Ich habe schon an mir gezweifelt, nachdem Christine meinte, dass das eigentlich nicht sein kann, dass der NN 3.0 das falsch darstellt.

          Also nochmal 1000 Dank, dass du dich so sehr bemüht hast!! Ich hoffe, ich kann mich irgendwann mal revangieren!

          Ein strahlender Markus

          1. Freu, jubel, tanz auf dem Tisch: ES FUNKTIONIERT!!!

            Hi Markus,

            einen hab ich noch...
            Ich konnte mir nicht erklären, wieso der StarOffice4.0 - Browser eine Fehlermeldung brachte und hatte ihn deshalb von der Darstellung ausgeschlossen. Das ist nun nicht mehr nötig. War ein kleines Problemchen, das ich nun auch gelöst habe. Er mochte die Variablenbezeichnung
            name in Verbindung mit dem image-Objekt nicht, wahrscheinlich weil dies eine Konfrontation mit der Eigenschaft 'name' des image-Objektes ergab.
            Außerdem habe ich mir erlaubt, die GIF-Bilder der Zahlen etwas einzudampfen. Bei 2 Farben müssen nun wirklich keine knapp 1KB pro Grafik sein.(Ladezeit!) Die Grafiken sind jetzt je nur noch ein Zehntel groß (ca. 90 Byte). Wenn du willst kann ich sie dir mit einer Mail schicken.

            Hier nun noch der Code bei dem auch StarOffice 4.0 mitspielt. PAF kann ja mal schreiben, ob nun mit StarOffice 5.0 auch alles funzt (ist aber wahrscheinlich).

            <HTML>
            <HEAD>
            </HEAD>
              
            <SCRIPT LANGUAGE="JavaScript">
            <!--

            // 1996 von Tobe Toben, mailto:Tobe.Toben@artis.uni-oldenburg.de
            // 1998 angepaßt für eine Anzeige mit GIF-Ziffern durch:
            // Patrick Andrieu, mailto:Patrick.Andrieu@okay.net
            // 1999 optimiert von Ralph Gröger, mailto:r.groeger@abo.freiepresse.de

            var TimerID = null;
            var timerRunning = false;
            var now = new Date();
            var hours = now.getHours();
            var minutes = now.getMinutes();
            var seconds = now.getSeconds();
            var firsttime = seconds + (60*minutes) + (3600*hours);
            if(document.images){
                for(ii=0; ii<10; ii++) {
                  img=new Image();
                  img.src="gif/tc_"+ii+".gif";
                }
            }
            function startclock() {
            stopclock();
            showtime();
            }

            function stopclock() {
            if(timerRunning) clearTimeout(timerID);
            timerRunning=false;
            }

            function showtime() {
            var now = new Date();
            var hours = now.getHours();
            var minutes = now.getMinutes();
            var seconds = now.getSeconds();
            var nowtime = seconds + (60*minutes) + (3600*hours) ;
            if (hours==0 && minutes == 0 && seconds == 0){firsttime-=86400;}
            var difftime = nowtime - firsttime;
            var Dhours = 0;
            var Dminutes = 0;
            while (difftime > 3599) {Dhours+=1;difftime-=3600};
            while (difftime > 59) {Dminutes+=1;difftime-=60};
            var Dseconds = difftime;

            var time = ""
            // time += ((Dhours < 10) ? "0" : "") + Dhours
            time += ((Dminutes < 10) ? "0" : "") + Dminutes
            time += ((Dseconds < 10) ? ":0" : ":") + Dseconds
            timerID = setTimeout("showtime()", 1000);
            timerRunning = true;
            show("s", 2, difftime);
            show("m", 2, Dminutes);
            }
              function show(was, anz, wert) {
                for(ii=1; ii<=anz; ii++) {
                  ziff=wert%10;
                  k=was+ii;
            document.images[k].src="gif/tc_"+ziff+".gif";
                  wert=(wert-ziff)/10;
            }
            }
            // Ende -->
            </SCRIPT>

            <BODY TEXT="#000000" BGCOLOR="#88F0F9" LINK="#0000EE" VLINK="#551A8B"
              ALINK="#FF0000" BACKGROUND="jpg/hintergrlinks.jpg"
            onLoad="if(document.images){startclock();return true;}">

            <BR><BR><BR><BR>
            <SCRIPT LANGUAGE="JavaScript">
            if(document.images){
            document.write("<TABLE WIDTH='120'><TR> <TD> <CENTER>"
            +"<FONT FACE='Arial,Helvetica' SIZE='-2'>Du bist schon</FONT></CENTER><CENTER>"
            +"<TABLE CELLSPACING=0 CELLPADDING=0 VALIGN=TOP><TR><TD VALIGN='MIDDLE'>"
            +"<IMG SRC='gif/tc_0.gif' NAME=m2 WIDTH=16 HEIGHT=21></TD>"
            +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_0.gif' NAME=m1 WIDTH=16 HEIGHT=21 ></TD>"
            +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tcm.gif' HEIGHT=21 WIDTH=9></TD>"
            +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_0.gif' NAME=s2 HEIGHT=21 WIDTH=16></TD>"
            +"<TD VALIGN='MIDDLE'><IMG SRC='gif/tc_0.gif' NAME=s1 HEIGHT=21 WIDTH=16></TD>"
            +"</TR></TABLE><CENTER><CENTER><FONT FACE='Arial,Helvetica' SIZE='-2'>"
            +"Minuten hier</FONT></CENTER></CENTER></TD></TR></TABLE>")}
            </SCRIPT>
            </BODY>
            </HTML>

            Tschau Ralph, der Schlaflose.

            1. Hi Ralph!

              Bin sozusagen sprachlos! [riesenfreu]

              Wenn du willst kann ich sie dir mit einer Mail schicken.

              Und ob ich will! ;-) Wäre nett, wenn du sie mir rübermailen könntest! Und verrate mir doch bitte, mit welchem Programm du die Grafiken so verkleinern konntest.

              »»PAF kann ja mal schreiben, ob nun mit StarOffice 5.0 auch alles funzt.

              Ich habe es gerade umgeändert. Jetzt kann man die neueste "Version" auf meiner HP ansehen.

              Markus

              1. Ich habe es gerade umgeändert. Jetzt kann man die neueste "Version" auf meiner HP ansehen.

                Hi Markus,
                war gerade mit StarOffice auf der Page(start.htm) und bekam Fehlermeldung. Im Quelltext habe ich gesehen, daß Du das Script selbst abgeändert hast, was jedoch schief ging, da du jetzt 2 Fehler noch drin hast. Kopier dir am besten das letzte Script von mir und setz es an den richtigen Stellen ein. Das Script ist o.k. Wie gesagt, ich habe es getestet.
                Nicht verzagen, alles wird gut...

                Tschau
                Ralph, der Hartnäckige

                1. Moin Ralph!

                  » Im Quelltext habe ich gesehen, daß Du das Script selbst abgeändert hast, was jedoch schief ging, da du jetzt 2 Fehler noch drin hast. Kopier dir am besten das letzte Script von mir und setz es an den richtigen Stellen ein. Das Script ist o.k. Wie gesagt, ich habe es getestet.

                  Nöö, ich habe nix verändert! Würde ich mich doch gar nicht trauen... ;-)
                  Ich hatte das Skript über die Zwischenablage in meine HTML-Datei kopiert. Mhh, komische Sache. Also ich habe es jetzt gerade noch mal gemacht. Und zwar wie vorher auch mit deinem letzten für Star Office optimierten JS. Jetzt müsste es doch 100%ig übereinstimmen.

                  Markus

                  1. » Mhh, komische Sache. Also ich habe es jetzt gerade noch mal gemacht. Und zwar wie vorher auch mit deinem letzten für Star Office optimierten JS. Jetzt müsste es doch 100%ig übereinstimmen.

                    Humta Humta Tötörö....

                    Markus du hast es geschafft. Das Script auf  deiner Seite läuft jetzt auch im StarOffice 4.0 - Browser.Die Fehler im Quellcode der Seite sind ja nun auch hinweg, wie ich eben sah.
                    Mal noch am Rande: mit IE 3.x bekomme ich noch eine Fehlermeldung verursacht durch ein Script auf der Seite home.htm, wo du das Frameset definiert hast. Dort ist auch noch eine Funktion, die mit dem images-Objekt aufwartet, das der IE 3.x nicht kennt. Aber das mach man selber, wenn Du aus meinen Tips etwas gelernt hast, dürfte das ja kein Problem sein. Ansonsten schau mal in SelfHTML nach.
                    Die geschrumpften GIF's maile ich alsbald, sie sind optimiert mit dem Smart Saver aus Ulaed PhotoImpact 4.0. Sicher gibt es ähnliches als Free- oder Shareware auch im Net.

                    Tschau Ralph, der Fröhliche.

                    1. Hallo Ralph!

                      Markus du hast es geschafft. Das Script auf  deiner Seite läuft jetzt auch im StarOffice 4.0 - Browser.

                      StarOffice 5.0 zeigt keine Fehlermeldungen mehr, zeigt sogar den Counter... Nur: neben dem letzten Link, gibt es zwei komische Zeichen, hier ein Screenshot:

                      <img src="../src/starof5.gif" alt="">

                      Mal noch am Rande: mit IE 3.x bekomme ich noch eine Fehlermeldung verursacht durch ein Script auf der Seite home.htm, wo du das Frameset definiert hast. Dort ist auch noch eine Funktion, die mit dem images-Objekt aufwartet, das der IE 3.x nicht kennt. Aber das mach man selber, wenn Du aus meinen Tips etwas gelernt hast, dürfte das ja kein Problem sein. Ansonsten schau mal in SelfHTML nach.

                      Da war es mit StarOffice 5.0 ganz komisch bezüglich des Musikplayers auf der Home-Seite: beim ersten Laden ging es einwandfrei (außer daß er aufgrund eines vermutlich fehlenden PlugIns keine Musik spielte, die *.mid laden konnte er aber laut Statusleistenmeldung). Nach einem Reload zeigte er jedesmal eine JS-Fehlermeldung, wenn ich die Maus über den Player hielt...

                      Nochmals vielen Dank für Deine Hilfsbereitschaft!

                      PAF (patrickausfrankfurt)

                      1. Hallo zusammen!

                        Danke für den Hinweis bezgl. IE 3 und der Fehlermeldung. Werde ich mir mal in einer ruhigen Stunde vornehmen... ;-)

                        » Nur: neben dem letzten Link, gibt es zwei komische Zeichen...

                        Sachen gibt's! Woran soll das denn nun schon wieder dran liegen? Na, egal...

                        » Da war es mit StarOffice 5.0 ganz komisch bezüglich des Musikplayers auf der Home-Seite: beim ersten Laden ging es einwandfrei. Nach einem Reload zeigte er jedesmal eine JS-Fehlermeldung, wenn ich die Maus über den Player hielt...

                        ditto!

                        » Nochmals vielen Dank für Deine Hilfsbereitschaft!

                        ebenfalls ditto!

                        Markus