Alexander (HH): Event-Handler dynamisch generieren im MS IE

Beitrag lesen

Moin Moin!

Nur noch aus Neugier, wofür steht das "e" in den runden Klammern, bei den Funktionen, die den Event-Handlern zugewiesen werden? Ist das so eine Art "Dummy"-Parameter?

Brauchbare Browser übergeben dort das Event-Objekt, das der MSIE in window.event global vorhält. Wenn Du das Event-Objekt benötigst (z.B. um herauszufinden, wo ein Event stattgefunden hat oder welche Taste daran beteiligt war), ist folgendes der gängige Weg:

  
function meinEventHandler(ev)  
{  
  ev||=window.event; /* MSIE compatibility */  
  
  // weiterer Code arbeitet ausschließlich mit ev,  
  // das funktioniert dann in "allen" Browsern.  
}  

Alle "normalen" Browser übergeben das Event-Objekt in ev, Objekte werden in boolschem Kontext im allgemeinen als TRUE evaluiert, sprich: die Zuweisung findet nicht statt. Der IE übergibt nichts, ev ist undefiniert, was im boolschen Kontext zu FALSE evaluiert, die Zuweisung ev=window.event findet statt. In jedem Fall ist anschließend das Event-Objekt in ev.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".