brand: script läuft nicht innerhalb eines Layers

Hi!

Ich hab' wiedermal troubles mit meinem script mit Netscape

zuerst mal der (meiner Meinung nach) relevante Teil des Scripts:

function falla(s)
{
if(eval(laier+'["fe'+s+'"]'+lasty+latop+'<(30+20*s)'))
{
  eval(laier+'["fe'+s+'"]'+lasty+latop+'+=3');
  setTimeout('falla('+s+')',40);
}
}

zum "Rundherum":

das Script steht in einer Datei(seit.html), die ich in einen Layer einer anderen Datei(index.html) lade.

Wenn ich die Datei seit.html in den Browser lade, funktioniert es.

Innerhalb des Layers aber kommt die Fehlermeldung "falla is not defined" - diese Meldung kommt aber erst beim "setTimeout"-Befehl - also erst, wenn diese Funktion ja bereits einmal aufgerufen wurde.

Wäre nett wenn wer einen Hinweis hätte.

mfG
BRAND
P.S. im IE funktionierts natürlich

  1. Probier mal die Variable s global zu definieren, hat mir schon mal in einem aehnlichem Fall geholfen. Es scheint naemlich, dass Netscape durch den Timeout den Wert 'vergisst', wenn er nur in der Funktion definiert ist.

    Liebe Gruesse, Til.

    1. Hi!

      Probier mal die Variable s global zu definieren.

      Ich muß die variable aber lokal definieren, da ich diese Funktion quasi gleichzeitig mehrmals mit unterschiedlichen Parametern aufrufe.

      kanns an was anderm liegen?

      mfG
      BRAND

      1. Ich meinte damit nicht die Variable zu einer Konstanten zu machen.
        Sondern einmal var s=0 z.B. zu definieren, ausserhalb der Funktionen und dann statt func(s) aufzurufen, setze s=gew.Wert und dann die Funktion, die sich s wieder abruft.

        til

  2. Hi!

    Hab die Lösung bereits gefunden!

    Wenn man eine Datei, die Javascript beinhaltet in einen Layer lädt und man verwendet dort setTimeout, dann bezieht sich der Funktionsaufruf des setTimeout-Befehls auf das Window (da es dort die Funktion nicht gab bekam ich natürlich den "...is not defined" Hinweis).
    Also muß man die Funktion mit window.document.layername.funktionsname() aufrufen :-)

    ...für die die's noch nicht wußten

    mfG
    BRAND