Rondra: Funktionsname als Parameter übergeben

Hallo zusammen!

Ich hab ein sehr kurioses Problem. Vlt sehe ich auch den Wald vor lauter bäumen nich mehr. Folgendes:

ich hab eine tastenerkennungs-funktion, von der aus -je nach fall- andere funktionen aufgerufen werden. diese anderen funktionen sollen mit ihren namen an diese hauptfunktion übergeben werden.

Habe sowas mal probiert auf doof aber geht nat. nicht:

function verteile(fName,fParam,e){
  if(window.event) var k = window.event.keyCode;
  if(e) var k = e.which;
  if(k==13) fName(fParam);
}

Zweck der ganzen sache:
Auf meiner webseite soll beim drücken der entertaste entweder FunctA oder FuncB (oder beliebig mehr) aufgerufen werden. damit ich aber nicht auf jeder seite die gleiche funktion "verteile" mit jeweiligen notwendigem funktionsnamen einfügen muss, wollte ich eine zentrale function "verteile" erstellen, die dann die zielfunktion als parameter bekommt.

also :
 [..] onkeypress="verteile('FuncA','aParameter',event)"  [..]

oder

[..] onkeypress="verteile('FuncB','bParameter',event)"  [..]

Konnte ich mich verständlich ausdrücken?

ich könnte es nat. auch so machen:
 [..] onkleypress="verteile(event,'home')"  [..]

und dann:

function verteile(e,i){
  if(window.event) var k = window.event.keyCode;
  if(e) var k = e.which;
  if(k==13){
    if(i=='home') FuncA(i);
    if(i=='kontakt') FuncB(i);
     usw...
   }
}
finde ich aber umständlich wenn ich dann mehr als 10 seiten hab...

Hat jemand einen tipp oder geht sowas generell nich?

Danke im Voraus!!!
Rondra

  1. ich hab eine tastenerkennungs-funktion, von der aus -je nach fall- andere funktionen aufgerufen werden. diese anderen funktionen sollen mit ihren namen an diese hauptfunktion übergeben werden.

    Einfacher ist es diese als Referenz zu übergeben.

    Habe sowas mal probiert auf doof aber geht nat. nicht:

    function verteile(fName,fParam,e){
      if(window.event) var k = window.event.keyCode;
      if(e) var k = e.which;
      if(k==13) fName(fParam);
    }

    function verteile(fName,fParam,e){
    var k = window.event ? window.event.keyCode : e ? e.which : null;
    if(k == 13) fName(fParam);
    }

    also :
    [..] onkeypress="verteile('FuncA','aParameter',event)"  [..]

    onkeypress="verteile(FuncA,'aParameter',event)"  [..]

    Struppi.

    1. WOW das funktioniert Struppi! DAAAAAAAAAAANKEEEEEEEEEE !!!
      *freu*
      so einfach wars also! LOL *sichdiestirnklatsch*

      1. WOW das funktioniert Struppi! DAAAAAAAAAAANKEEEEEEEEEE !!!

        Oh je, kein Problem

        so einfach wars also! LOL *sichdiestirnklatsch*

        Naja, an diese Information ist nicht so leicht zu kommen. Für Leute die schon mal mit C oder gar C++ zu tun hatten ist es ein bisschen verständlicher, da dort mit viel mit Zeiger und Referenzen gearbeitet wird, die es so in den meisten anderen Programmiersprachen (ob Assembler eine ist lassen wir mal dahin gestellt) nicht gibt.

        Du kannst das aber leicht festellen, wenn du dir mal die Referenz mit alert ausgeben läßt

        function func(x)
        {
        var i = x;
        }

        alert( func );

        ich hab das mal im Rahmen eines (wie so oft bei mir) unvollständigen Artikel über Events erläutert: http://javascript.jstruebig.de/exp/events.html

        Struppi.