Tom Harrison: Script läuft nicht im IE

Hallo zusammen

Ich mache gerade für mich ein kleines Script für eine Stoppuhr.
Leider bin ich kein grosser Javascriptprogrammierer.

Nun habe ich mein Script mal so begonnen:

<script language="javascript">
function start(){
 rstarten = new Date();
 uhr = rstarten - starten
 document.uhr.zeit.value = uhr
 setTimeout("start()",1);
}

function zeitspeichern(){
 starten = new Date();
 start();
}

</script>

Nun mein erstes Problem ist, dass es nicht läuft im IE im Netscape 4.7 geht es allerdings.
Wo liegt das Problem?

Vielen Dank für eure Hilfe.

Gruss
Tom

  1. hi,

    Nun mein erstes Problem ist, dass es nicht läuft im IE im Netscape 4.7 geht es allerdings.

    welche javascript-fehlermeldungen erhältst du? (kleines glebes dreieck in der statusleiste)

    gruss,
    wahsaga

    1. welche javascript-fehlermeldungen erhältst du? (kleines glebes dreieck in der statusleiste)

      Leider keine. Es passiert einfach nichts.

      Mein Script sieht nun folgendermassen aus:

      Schlussendlich sollte es mal eine Stoppuhr geben. Eigentlich habe ich schon ein fertiges Script dazu, doch möchte ich nun endlich auch verstehen was ich mache.

      Vielen Dank schon mal im voraus.

      Gruss aus der Schweiz
      Tom

      <script language="javascript">
      function start(){
       rstarten = new Date();
       uhr = (rstarten - starten) / 1000;
       document.uhr.zeit.value = uhr;
       setTimeout("start()",1);
      }

      function zeitspeichern(){
       starten = new Date();
       start(starten);
      }

      </script>

      <form name="uhr" method="post" action="">
        <input type="submit" name="Submit" value="Starten" onClick="zeitspeichern()">
        <input type="text" name="zeit">
      </form>

  2. Hi!

    Dein Script enthält einige Denkfehler, hier kommt das Script das das tuen sollte was du möchtest:

    -------------------------

    <script language="javascript">
    function start(starten){
     rstarten = new Date();
     uhr = rstarten - starten;
     document.uhr.zeit.value = uhr;
     setTimeout("start()",1);
    }

    function zeitspeichern(){
     starten = new Date();
     start(starten);
    }
    </script>

    --------------------------

    Hier ein paar Erklärungen dazu:

    1. Jede Programmzeile wird grundsätzlich mit einem Semikolon ";" beendet.
    2. Die Variable "starten", die du in der Funktion "zeitspeichern()" definierst, gilt NUR in dieser Funktion. Deshalb übergebe ich sie später beim Funktionsaufruf "start(starten)".
    3. Rufst du die Funktion "zeitspeichern()" überhaupt irgendwie auf?

    Viel Glück damit!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!!!
    SELFCode: ss:| zu:) ls:[ fo:} de:[ va:} ch:? sh:) n4:° rl:? br:^ js:( ie:% fl:) mo:)
    http://emmanuel.dammerer.at/selfcode.html
  3. hallo tom

    das geht ... so (ie + firebird getestet ...)

    <script language="javascript">
    var starten;
    var display;
    function start(){
     rstarten = new Date();
     uhr = rstarten - starten
     display.value = parseInt(uhr);
     setTimeout("start()",100);
    }
    function zeitspeichern(){
    display=document.f['zeit'];
     starten = new Date();
     start();
    }
    </script>
    <body onload=setTimeout('zeitspeichern()',100)>
    <form name=f>
    <input type=text name=zeit value=''>
    </form>

    -----------------
    auch ohne (;)

    qp

  4. hallo tom

    noch traute ?

    Nocheinmal -> so geht es.
    <script language="javascript">
    var uhr,starten;              //diese vars global (zumindest uhr ist wichtig)
    function start(){
     rstarten = new Date();
     uhr = (rstarten - starten) / 1000;
     document.uhr.zeit.value = uhr;
     setTimeout("start()",1);
    }

    function zeitspeichern(){
     starten = new Date();
     start(starten);
    }

    </script>

    <form name="uhr" method="post" action="">
    //hier brauchst du einen button der die function ruft <br>
    //keinen submit der was verschickt.   <br>
    //mehr ises nicht ...     <br>
      <input type="button"  value="Starten" onClick="zeitspeichern()">
      <input type="text" name="zeit">
    </form>

    kopf hoch
    qp

    1. kopf hoch
      qp

      Hi qp und alle anderen.
      Vielen Dank für die Hilfe. Es hat jetzt, doch geklappt...und ich war sicher nicht das letzte mal hier.
      Noch kurz zu meinem Doppelposting von heute: Ich dachte einfach, wenn ich jetzt wieder auf mein erstes Posting von heute Antworte, dann sieht das niemand mehr, da es schon sehr weit unten ist...da wurde ich ja eines besseren belehrt.
      Ich habe auch nicht erwartet, dass jemand von euch mein Script fertig schreibt. Eigentlich ist das Script schon fertig, doch ich möchte nun das selber schreiben und auch verstehen was ich dann mache...ich will schlussendlich nicht mehr nur von CopyPaste leben.

      Also liebe Leute, wir hören uns wieder, denke ich mal :-)
      Bis dahin noch alles gute und vielen Dank für die Hilfe.

      gruss
      tom

  5. Halihallo Tom

    [...]
    Es scheint, als ob dein Doppelposting verschwunden ist, deshalb
    (falls du es dort nicht gelesen hast) hier nochmals mein Statement
    in Kurzform:

    Falls du eine weitere Antwort wünschst, die dich der Lösung
    näherbringen soll, so ist es keine akzeptable Vorgehensweise einfach
    denselben Quellcode nocheinmal zu posten. Die Forumer müssen genau
    erkennen, dass du dich mit den bereits gegebenen Antworten befasst
    hast und dein Problem versucht hast zu lösen. Es ist überhaupt kein
    Problem, falls du es nicht selber lösen konntest, dazu sind Foren da.
    Aber: Eigeninitiative muss vorhanden sein! - Wenn z.B. ich erkenne,
    dass du keine Motivation zeigst die Tipps und Lösungen der
    Antwortenden zu untersuchen und nur darauf hoffst, dass jemand dein
    Script zur Hand nimmt und versucht es zu verbessern, dann hat sich
    für mich jedwelcher Einsatz und Motivation zum Antworten erledigt.

    Viele Grüsse

    Philipp

    --
    The only program that runs perfectly every time, is a virus.