Thomas Schenkeli: Namen einer aufzurufenden Funktion als Variable übergeben

Hallo,

kann ich den Namen einer aufzurufenden Funktion (inklusive Aufruf-Parametern) in einer andere variable übergeben?

so ganz einfach: var funktionsname = "checkRangeOfNumber(0,100)";

document.getElementById("Inputfeld").funktionsname;

gehts natürlich nicht, weil er sich dann aufregt, dass es die Funktion namens "funktionsname" nicht gibt.

Gibt es da einen Workaround?

lg Thomas

  1. Hi,

    Gibt es da einen Workaround?

    das funktioniert mit eval(). du musst dan schreiben:
    var string = "document.getElementById("Inputfeld")."+funktionsname;
    eval(funktionsname);

    mfG,
    steckl

    1. Hi,

      Gibt es da einen Workaround?

      das funktioniert mit eval(). du musst dan schreiben:
      var string = "document.getElementById("Inputfeld")."+funktionsname;

      sry, so musst du eval aufrufen:
      eval(string);

      mfG,
      steckl

      1. Danke, funktioniert so!

        1. Danke, funktioniert so!

          ... aber ist wie schon erwähnt die (u.U.) schlechteste Lösung.

          Struppi.

          --
          Javascript ist toll (Perl auch!)
  2. kann ich den Namen einer aufzurufenden Funktion (inklusive Aufruf-Parametern) in einer andere variable übergeben?

    Wozu?

    so ganz einfach:
    var funktionsname = "checkRangeOfNumber(0,100)";

    document.getElementById("Inputfeld").funktionsname;

    Du kannst jede Funktion auch indirekt ansprechen, aber die Parameter musst du separat angeben.

    var funktionsname = "checkRangeOfNumber";
    document.getElementById("Inputfeld")funktionsname;

    eval würde ich wenn möglich vermeiden (ist aber so wie du das Problem hier zeigst die einzige Lösung), da es ein paar Nachteile hat.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
  3. Hi,

    document.getElementById("Inputfeld").funktionsname;

    das wäre keine Funktion, sondern eine Methode - die ein DOM-Objekt nicht hat. Wenn dem bei Dir doch so ist, dann würde ich gerne erfahren, wie Du dem IE beigebracht hast, sie zu akzeptieren (bzw. wie Du es vermeidest, dass der IE pro Element die .htc-Datei neu lädt).

    Gibt es da einen Workaround?

    Was genau hast Du eigentlich vor, auf diese Weise zu lösen?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes