Malte Kiefer: Countdown

Hi,

ich habe jetzt im Netz ein Srcipt gefunden. Dieser Script ist ein Countdwon.
Aber ich jabe zwei Probleme mit diesem Srcipt.

1. Der Countdown wird in der Statusleiste angezeigt.
Ich will aber, das er auf dem Bildschirm, also auf der Webseite angezeigt wird, was muss ich dazu ändern?

2. Ich möchte, wenn der Countdown abgelaufen ist das ein Button erscheint wo man zur nächsten  Seite kommt. Ich kenne mich aber ziemlich schlecht mit Javasrcipt aus und weiß daher nicht wie ich das dann in den elese zweig schreibne soll.

Ich bdanke mich jetzt schonmal für eure Hilfe:

<script language="Javascript">
<!--
var countdown = "10";

function doCount()
{
if (countdown > 0){
    countdown--
}
else{

}

var s = countdown;
var h = Math.floor(s/3600);
var m = Math.floor((s - (h * 3600))/60);
s = (s-(h*3600))%60

window.status=h+":"+m+":"+s+ " bis zur nächsten Seite"

window.setTimeout('doCount()',1000)
}

doCount();
//-->
</script>

  1. Guten Morgen Malte Kiefer,

    Sorry wenn das jetzt etwas blöde rüber kommt oder wie auch immer. Ich lese deine Beiträge jetzt schon seit ein paar Tagen und es kommt immer und immer wieder vor dass da steht " Ich habe das Skript im Netz gefunden und könnt Ihr mir helfen das anzupassen? " Hmm warum sollten wir das denn immer machen. Kannst du denn nicht auch mal etwas selber machen und wenn du dann noch eine Frage hast dann kannst du ja fragen aber nicht immer gleich sagen, Hey ihr könnt ja eh alles warum soll ich mir da noch den Kopf zwerbrechen.

    Also überelg dir das mal bitte.

    MFG jaylibii

  2. Hi Malte,

    Dem was jaylibii gesagt hat, stimme ich auch voll und ganz zu, trotzdem hier mal eine Theorie, wie du das angehen solltest.

    window.status=h+":"+m+":"+s+ " bis zur nächsten Seite"

    Nur diese Stelle ist interessant, den hier wird der Statusleiste bei jedem Durchlauf der neue Wert „zugewiesen”.

    Ändere an dieser Stelle den Code also so um, dass die neue Zeit in ein anderes Element geschrieben wird. Dieses Element könnte z.B. ein Textfeld (<input type="text">) sein, mit getElementById() kannst du dann auf das Textfeld zugreifen und der Eigenschaft value den Wert zuweisen.

    Möchtest du allerdings kein Textfeld nutzen, sondern ein beliebiges HTML Element dann benötigst du nodeValue - dazu ist sogar schon fast ein vollständiges Beispiel in SelfHTML.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)
  3. Tag Malte.

    1. Der Countdown wird in der Statusleiste angezeigt.
      Ich will aber, das er auf dem Bildschirm, also auf der Webseite angezeigt wird, was muss ich dazu ändern?

    Das wurde dir schon beantwortet.

    1. Ich möchte, wenn der Countdown abgelaufen ist das ein Button erscheint wo man zur nächsten  Seite kommt. Ich kenne mich aber ziemlich schlecht mit Javasrcipt aus und weiß daher nicht wie ich das dann in den elese zweig schreibne soll.

    Versuche, den Code zu verstehen, er ist ziemlich simpel.

    var countdown = "10";

    Der Countdown beginnt mit dem Startwert 10.

    if (countdown > 0){
        countdown--
    }

    Wenn der Countdown noch nicht auf "0" steht, dann zähle abwärts.

    else{

    }

    Wenn nicht dann ... ? Tja, der Code sieht hier keine Alternative vor, was bedeutet, dass er bei "0" einfach stehen bleibt. Also musst du in diesen else-Zweig den Code reinschreiben, der deinen Button einblendet. Dafür gibt es etliche Möglichkeiten. Die einfachste ist, den Button im HTML-Code zu notieren und mittels CSS zunächst auszublenden. Innerhalb des else-Zweiges blendest du ihn durch Setzen der relevanten Eigenschaft einfach ein. Versuche dich mal daran, ist gar nicht so schwer:

    Siechfred

    --
    «Ich liebe euch doch alle!»
  4. Hallo Malte

    1. Ich möchte, wenn der Countdown abgelaufen ist das ein Button erscheint wo man zur nächsten  Seite kommt. ...

    Warum soll der Seitenbesucher erst nach diesem Countdown zur nächsten Seite kommen?

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. Tag Detlef.

      1. Ich möchte, wenn der Countdown abgelaufen ist das ein Button erscheint wo man zur nächsten  Seite kommt. ...
        Warum soll der Seitenbesucher erst nach diesem Countdown zur nächsten Seite kommen?

      Ist das wirklich relevant?

      Siechfred

      --
      «Ich liebe euch doch alle!»
      1. Hallo Siechfred

        Warum soll der Seitenbesucher erst nach diesem Countdown zur nächsten Seite kommen?

        Ist das wirklich relevant?

        Nicht, um das Script funktionsfähig zu bekommen. Dazu gab es ja auch bereits
        Hinweise, durch die Malte die Lösung finden sollte.

        Mir geht es bei der Frage darum, dass er über Folgendes nachdenkt:
        Ist dieses Script überhaupt nötig, oder besteht eventuell ein ganz anderes
        Problem, dessen Auswirkungen das Script kaschieren soll.
        Ist es möglicherweise eventuell eher dazu geeignet, Seitenbesucher zu verärgern,
        oder die Seite für javascriptlose Besucher unbenutzbar zu machen.

        Auf Wiederlesen
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!
        1. Hi,

          Ist es möglicherweise eventuell eher dazu geeignet, Seitenbesucher zu verärgern,
          oder die Seite für javascriptlose Besucher unbenutzbar zu machen.

          es gibt durchaus "sinnvolle" Anwendungen eines solchen Scripts. Vor allem in Browsergames findet man derartiges häufig.

          MfG Hopsel

          --
          "It's amazing I won. I was running against peace, prosperity, and incumbency."
          George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
          1. Hallo Hopsel

            es gibt durchaus "sinnvolle" Anwendungen eines solchen Scripts. Vor allem in Browsergames findet man derartiges häufig.

            Habe ich mit irgendeinem Wort geschrieben, dass das Script sinnlos ist?

            Auf Wiederlesen
            Detlef

            --
            - Wissen ist gut
            - Können ist besser
            - aber das Beste und Interessanteste ist der Weg dahin!
            1. Hi,

              Habe ich mit irgendeinem Wort geschrieben, dass das Script sinnlos ist?

              nicht, dass ich wüsste. Warum?

              MfG Hopsel

              --
              "It's amazing I won. I was running against peace, prosperity, and incumbency."
              George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        2. Tag Detlef.

          Mir geht es bei der Frage darum, dass er über Folgendes nachdenkt:
          [...]

          Es geht hier um irgendein Game mit Panzern und Soldaten und Gedöns, somit ist deine Sorge hier wohl unbegründet.

          Siechfred

          --
          «Ich liebe euch doch alle!»
          1. Hallo Siechfred

            Es geht hier um irgendein Game mit Panzern und Soldaten und Gedöns, somit ist deine Sorge hier wohl unbegründet.

            Steht das im Ausgangsposting?

            Auf Wiederlesen
            Detlef

            --
            - Wissen ist gut
            - Können ist besser
            - aber das Beste und Interessanteste ist der Weg dahin!
            1. Tag Detlef.

              Es geht hier um irgendein Game mit Panzern und Soldaten und Gedöns, somit ist deine Sorge hier wohl unbegründet.
              Steht das im Ausgangsposting?

              Nein, aber einen Thread über diesem.

              Siechfred

              --
              «Ich liebe euch doch alle!»
              1. Hallo Siechfred

                Steht das im Ausgangsposting?

                Nein, aber einen Thread über diesem.

                Ein Thread über diesem ist bei mir (HTML) Darstellung im MS IE von Dada.

                Bin ich etwa verpflichtet alle Threads, auch die in meinen Einstellungen
                ausgeblendeten, zu lesen, bevor ich antworten oder eine Rückfrage stellen
                darf?

                (Der Thread, den du meinst gehört zu PHP. Da ich bei Fragen zu PHP kaum
                helfen kann, ist dieser Bereich bei mir ausgeblendet, wie auch alles andere,
                bei dem ich weder helfen kann noch ein besonderes Interesse meinerseits besteht.)

                Auf Wiederlesen
                Detlef

                --
                - Wissen ist gut
                - Können ist besser
                - aber das Beste und Interessanteste ist der Weg dahin!
                1. Tag Detlef.

                  Bin ich etwa verpflichtet alle Threads, auch die in meinen Einstellungen
                  ausgeblendeten, zu lesen, bevor ich antworten oder eine Rückfrage stellen
                  darf?

                  Sorry, mir steht nicht der Sinn nach einer Grundsatzdiskussion; ich sollte manchmal wirklich besser meine Klappe halten respektive Postings gar nicht absenden.

                  Siechfred

                  --
                  «Ich liebe euch doch alle!»
  5. Ok, hier mal der Code:

      
    <?php  
    <script language="Javascript">  
    <!--  
    var countdown = <?=$dauer?>;  
      
    function doCount()  
    {  
    if (countdown > 0){  
        countdown--;  
    }  
    else{  
    document.getElementById("FORMULAR").style.visibility="visible";  
    }  
    var s = countdown;  
    var h = Math.floor(s/3600);  
    var m = Math.floor((s - (h * 3600))/60);  
    s = (s-(h*3600))%60;  
      
    document.getElementById("counter").value=h+":"+m+":"+s+ " bis der bau Fertig ist";  
      
    window.setTimeout('doCount()',1000);  
    }  
      
    doCount();  
    //-->  
    </script>  
    
    

    Und hier die Stelle, wo ich es eingefügt habe:

      
      
             </p>  
    <textarea name="counter" id="counter">Die Zeit</textarea>  
    <p> 
    
    1. Hi du mit den tausend Namen.

      Bleibe bitte bei einem Namen und poste nicht mal als Malte Kiefer, mal als Dirk und mal als Svenja. Danke.

      <?php

      <script language="Javascript">

        
      <script language="Javascript"> ist kein gültiger PHP Befehl!  
        
        
      MfG, Dennis.
      
      -- 
      Mein SelfCode: [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)  
        
      Sinnvolles Zitieren: Man zitiert nur Teilsätze des Vorposters auf die man sich bezieht! Nicht einfach alles.
      
      1. Ja,

        das steht nicht in <? ist ausversehen dahin gekommen, hat aber nichts mit dem Problem zutun, da es in dem Quellcode nicht vorhanden ist. Kannst du mri trotzdem sagen was ich falsch mache?

        Dirk

        1. Hi Dirk,

          Kannst du mri trotzdem sagen was ich falsch mache?

          Wer ist mri?? ;-))

          Das hat dir Jürgen doch in deinem dritten (!) Thread zu diesem Thema schon gesagt:
          https://forum.selfhtml.org/?t=106369&m=659007.

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
          Sinnvolles Zitieren: Man zitiert nur Teilsätze des Vorposters auf die man sich bezieht! Nicht einfach alles.
          1. Hi, habe ich versucht:

              
            <script type="text/javascript">  
            <!--  
            var countdown = <?=$dauer?>;  
              
            function doCount()  
            {  
            if (countdown > 0){  
                countdown--;  
            }  
            else{  
            document.getElementById("FORMULAR").style.visibility="visible";  
            }  
            var s = countdown;  
            var h = Math.floor(s/3600);  
            var m = Math.floor((s - (h * 3600))/60);  
            s = (s-(h*3600))%60;  
              
             document.getElementById("counter").firstChild.nodeValue=h+":"+m+":"+s+ "bis der Baue fertig ist";  
              
            window.setTimeout('doCount()',1000);  
            }  
              
            doCount();  
            //-->  
            </script>  
            
            

            Immer noch habe ich einen Fehler:

            Objekt erforderlich

            Was mache ich falsch

            1. Hi Dirk,

              document.getElementById("FORMULAR").style.visibility="visible";
              document.getElementById("counter").firstChild.nodeValue=h+":"+m+":"+s+ "bis der Baue fertig ist";

              Objekt erforderlich

              Welche der beiden Zeilen oben verursacht denn den Fehler? (Sollte in der Fehlermeldung stehen.)

              Kommentier doch mal die erste Anweisung aus - oder hast du ein Formular, welches id="FORMULAR" hat?

              MfG, Dennis.

              --
              Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
              Wissen ist gut, Können ist besser, aber das Beste und Interessanteste ist der Weg dahin! (Detlef G.)
              1. Hi,

                die erste auf keinen Fall, da ich sie auch stehen hatte als ich es in der Statusleiste hatte und da bekam ich kein Fehler.

                Und ich habe ein Formular mit der ID FORMULAR, es ist ein Button der erscheinen soll, sobald der Countdown fertig ist.

                Also nur das zweite kann die Fehlermeldung auslösen.

                Gruss
                Dirk

                1. Hi Dirk,

                  Also nur das zweite kann die Fehlermeldung auslösen.

                  Wie Jürgen schon schrieb: Du musst deine HTML Datei so aufbauen:

                  <head>  
                    <script type="text/javascript">  
                      [code lang=javascript]//Hier dein Script  
                      //jedoch ohne doCount(); am Ende
                  

                  </script>
                  </head>
                  <body>
                    <p id="counter">Counter</p>
                    <script type="text/javascript">
                      doCount();
                    </script>
                  </body>[/code]

                  MfG, Dennis.

                  --
                  Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                  Wer die FAQ gelesen hat, ist klüger! ... und weiß wie man Links macht ;-)
    2. Hallo Dirk,

      <script language="Javascript">

      <script type="text/javascript">

      doCount();

      zu diesem Zeitpunkt ist das Dokument noch garnicht geladen und die Textarea gibt es noch nicht. Starte doCount entweder hinter dem textarea-Tag oder einfach im body mit onload.

      Gruß, Jürgen