Alexander Foken: Eventhandling, mehrere Funktionen an ein Event hängen

Beitrag lesen

Moin Moin !

Auch nicht schön, und vor allem ungetestet:

var onClickFunctions=new Array();
onClickFunctions.push(new Function('function code'));
onClickFunctions.push(new Function('function code'));
onClickFunctions.push(new Function('function code'));
onClickFunctions.push(new Function('function code'));
onClickFunctions.push(new Function('function code'));

function onClickHandler()
{
  var i;
  var rv=true;
  for (i=0; i<onClickFunctions.length; i=i+1) {
    rv=onClickFunctions[i].call(onClickHandler.arguments);
    if (!rv) break;
  }
  return rv;
}

(Ich weiß, das onClickHandler keine benannten Parameter hat. Sie kommen trotzdem in onClickHandler.arguments an. Ist zwar praktisch, aber häßlich! Die Parameterliste ist -- wenn man von der Deklaration und Zuweisung der Parameter-Variablen absieht -- kaum mehr als eine Aufrufempfehlung.)

Alternative:

<head>
<script ...>
var onLoadScript='';
</script>
</head>
<body onload="if (onLoadScript!='') eval(onLoadScript);">
<script ...>
onLoadScript=onLoadScript+'alert("Hallo Welt");';
</script>
...
<script ...>
onLoadScript=onLoadScript+'alert("Bin da, wer noch?");';
</script>
</body>

Das setze ich momentan in einer komplexen, CGI-basierten Anwendung ein, die HTML aus Templates und Funktionsergebnissen zusammenstückelt.

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
Für eine bessere Übersichtsdarstellung des Forums: http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2