Mastershrimp: Erneutes Aufrufen einer Funktion funktioniert nicht

Hallo!

Ich habe folgendes Problem, und zwar baue ich gerade eine Shoutbox für meine Homepage. Ihr findet meinen Versuch unter
http://www.mastershrimp.com/test/community.html.

Wenn die Seite läd, wird auch die Shoutbox geladen - scheint also zu funktionieren.

Ruft man aber nach Ablauf der Funktion nocheinmal die Funktion über den Link "refresh" auf, erscheint im IE6 der Fehler, dass das "Objekt diese Eigenschaft oder Methode nicht unterstützt"...

Dabei rufe ich doch lediglich die Funktion, die ich am Anfang über "onLoad" aufrufe, über einen Link auf. Auch ohne den onLoad-Handler funktioniert es nicht.

Die Funktion, um die es sich handelt, sieht folgendermaßen aus:

function shoutbox()
 {
  messages = new Array('### ADD YOUR SHOUT ###\n','Max (25.12.03): 1!!\n','Max (25.12.03): 2!!\n','Max (25.12.03): 3!!\n','Max (25.12.03): 4!!\n','Max (25.12.03): 5!!\n','Max (25.12.03): 6!!\n','Max (25.12.03): 7!!\n','Max (25.12.03): 8!!\n','Max (25.12.03): 9!!\n','Max (25.12.03): 10!!\n','Max (25.12.03): 11!!\n');
  shoutbox = this.document.eingabe.shoutbox;
  anzeige_begrenzung = 10;

shoutbox.value="";

if(messages.length<anzeige_begrenzung+1)
   { var max_eintr = messages.length; }
  else
   { var max_eintr = anzeige_begrenzung+1; }

j = max_eintr-1;

for(i=0;i<max_eintr;i++)
   {
    setTimeout("shoutbox.value = messages[" + j + "] + shoutbox.value",500*i);
    j--;
   }
  this.document.eingabe.status.value = "Momentan sind " + eval(messages.length-1) + " Shouts eingetragen! Es werden " + eval(max_eintr-1) + " Shouts angezeigt.";
 }

Die Shoutbox an sich ist eine normale Text-Area mit readonly.

Weiß jemand, woran das liegen kann?

Vielen Dank im Vorraus!

Gruß

Mastershrimp

  1. Sup!

    Hallo Meisterkrabbe,

    es ist einfach keine gute Idee, eine Variable, die eine Referenz auf ein DOM-Objekt darstellt, genau so zu nennen wie eine Funktion (deren Funktionsname genaugenommen eine Referenz auf ein ausführbares Objekt darstellt).
    Sprich: Deine Zuweisung an die Variable shoutbox überschreibt den Funktionszeiger in der gleichnamigen Variable shoutbox, denn ein Funktiosname ist der Name des Zeigers auf die Funktion.

    Also entweder Funktion oder Variable umbenennen.

    War gaaaanz einfach rauszufinden, richtige Browser (Mozilla z.B.) haben eine JavaScript-Konsole, die brauchbare Fehlermeldungen ausgibt, nicht so'n kryptischen Scheiss wie Dein toller IE.

    Gruesse,

    Bio

    --
    I'm feeling lucky
    1. War gaaaanz einfach rauszufinden, richtige Browser (Mozilla z.B.) haben eine JavaScript-Konsole, die brauchbare Fehlermeldungen ausgibt, nicht so'n kryptischen Scheiss wie Dein toller IE.

      Ahhh. Ok. Vielen Dank!! Muss ich mir mal grundsätzlich vornehmen (das mit dem anders-nennen)

      Schöne Feiertage und guten Rutsch!

      Gruß

      Meister der Krabben ;)

      1. Hallo,

        Ahhh. Ok. Vielen Dank!! Muss ich mir mal grundsätzlich vornehmen (das mit dem anders-nennen)

        oder du verwendest lokale Variable, was du innerhalb von Funktionen grundsätzlich tun solltest.

        var   shoutbox = this.document.eingabe.shoutbox;

        Viele Grüße

        Antje