2016-04-26 11 views
0

Ich verstehe nicht! Warum funktioniert dieser Code nicht? window.onload kann nicht doppelt funktionieren. Wie soll ich diesen Code nur?window.onload funktioniert nicht für Zähler Seite

Perl ist in Ordnung. Aber Javascript ist falsch. Ich brauche Hilfe für Javascript.

Perl:

print $lqcgi->td({ -class => 'navItemText', -align => 'left'}, '<script> document.write("refresh in <strong><span id=\"counter\"></span></strong> seconds")</script></td></tr>') 

print "<script>document.write('<p><small>You will be redirected to main page in <strong><span id=\"a_reload\"></span></strong> sec.</small></p>')</script>"; 

Javascript:

var Time = 60; 
    var Counter = zaehler; 
    function zaehler(){ 
     if (Time > 0) { 
      Time --; 
      document.getElementById('counter').innerHTML = Time; 
      setTimeout("zaehler()",1000); 
     } 
     else { 
      window.location.reload(true); 
     } 
    } 
    window.onload = Counter; 

    function a_confirm(){ 
     var x = confirm("Are you sure to Confirmation?"); 
     if (x == true){ 
      return true; 
     } 
     else{ 
      return false; 
     } 
    } 

    var Time_2 = 5; 
    var Counter_2 = c_reload 
    function c_reload(){ 
     if (Time_2 > 0) { 
      Time_2 --; 
      document.getElementById('a_reload').innerHTML = Time_2; 
      setTimeout("c_reload()", 1000); 
     } 
     else{ 
      window.history.back(-1); 
     } 
    } 
    window.onload = Counter_2; 

Antwort

0
var Counter = function(){ 

sollte Ihr Problem lösen. Derzeit weisen Sie eine Referenz zu (zähler), bevor Sie es erstellen. Wäre

my $Counter = $zaehler; 
my $zaehler = sub { 
... 

in Perl.

+0

Vielen Dank. 'var Counter = function() {}' funktioniert, aber für 'var Counter_2 = function() {}' funktioniert nicht. Warum ist das ein Problem? – Markus

+0

Ich habe etwas Code gefunden. 'var Zeit = 60; var Counter = Funktion() { \t if (Zeit> 0) { \t \t Zeit -; \t \t document.getElementById ('Zähler'). InnerHTML = Zeit; } \t else { \t \t window.location.reload (true); } } var myVar = Fenster.setInterval ("Counter()", 1000); ' ' var Zeit_2 = 10; window.onload = function() { \t if (Zeit_2> 0) { \t \t Time_2 -; \t \t document.getElementById ('a_reload'). InnerHTML = Zeit_2; \t \t setTimeout ('window.onload()', 1000); \t} \t sonst { \t \t window.history.back (-1); } } } window.onload = Counter_2; ' Das ist sehr viel besser. Aber vielen Dank. – Markus

Verwandte Themen