Gernot Back: globale variablen

Beitrag lesen

Hallo nochmal Patrick,

wie versprochen: das ist das Skript, wie es _nur_ im IE7 unter Vista Probleme machte, statt der anzuklickenden Adventskalendertür kannst du ja einfach den Übergabeparamter beim Aufruf ändern und/oder den gesetzten Tag für "heute".

Ich kann den Fehler auch jetzt nicht unter XP nachstellen. Ünglücklicherweise war, wie mir jetzt erst auffällt, im Skript von vor einem Jahr ja auch noch eine globale Variable mit der Bezeichnung "status" benannt. Möglicherweise war "status" unter Vista ja auch immer "0" da "window.status" hineinspielte. Globale Varaiblen sind ja, wenn ich das richtig sehe, immer Eigenschaften des Window-Objekts.

Ich bin durch diese Sache jedenfalls darin bestätigt, dass es im Zweifel immer besser ist, Skripte selbst neu zu schreiben, als Skripte anderer ungeprüft zu übernehmen.

Gruß Gernot

  
  
var jahr = 2007;  
var monat = 11;  
var tag = 3;  
  
function pruefe_datum(tuerNr) {  
  
var tuer = new Date(2007, 11, tuerNr, 0, 0, 0);  
var heute = new Date(jahr, monat, tag, 0, 0, 0);  
  
  
   if ( heute > tuer ) {  
       status = 1;  
   } else {  
       if ( heute < tuer ) {  
           status = -1;  
       } else {  
           status = 0;  
       }  
   }  
   return status;  
}  
  
function tuerOeffnen(tag) {  
  
var status = pruefe_datum(tag);  
   if ( status == 0 ) {  
       alert("Die Nummer der angeklickten Tuer entspricht dem heutigen Datum");  
 } else {  
         if (status == -1) {  
           alert("zu frueh!");  
       } else {  
           alert("zu spaet!");  
       }  
   }  
   return false;  
}