1UnitedPower: Events im Firefox

Beitrag lesen

Meine Herren!

var inputElement = document.getElementById('meinInput');

inputElement.addEventListener('keyup', checkEnter );


>   
> Also.. jetzt check ich was nicht.  
> Habe meinen Code jetzt umgestaltet und das Event onKeyUp mit addEventListener in's Javascript geschrieben. Jetzt funktioniert das Event sogar.  
  
Ja, weil die Funkion auf diese Weise vom Browser automatisch mit einem Parameter aufgerufen wird. Das passiert alles vom Programmier versteckt. Man sagt dem Browser nur welche Funktion er aufrufen soll (addEventListener), den eigentlichen Funktionsaufruf macht dann der Browser. Und der ruft die Funktion dann \_mit\_ Parameter auf.  
  

> Also ich kenne nur diesen Weg mit einem Parameter der nicht gesetzt wird aber dann durch if (!evt) dem window.event zugewiesen wird.  
  
Das `if (!evt) evt = window.event;`{:.language-javascript} ist Hack, den alte InternetExplorer gebraucht haben. Bei InternetExplorern war es nämlich so, dass das Event nicht als Parameter übermittelt wurde, stattdessen wurde eine globale Variable `event`{:.language-javascript} benutzt. In JavaScript können sind globale Variablen das gleiche wie Eigenschaften des window-Objekts. Deswegen kann man immer, wenn man eine globale Variable benutzt, statt `meineGlobaleVariable`{:.language-javascript} auch `window.meineGlobaleVariable`{:.language-javascript} schreiben.  
  

> (Frage nebenbei: wieso nicht einfach den Parameter und if (!evt) ~~   weglassen und einfach if (window.event.~~   schreiben?)  
  
Weil der Weg über die globale Variable veraltet ist. Ein Funktionsparameter ist die neuere und saubere Variante.  

-- 
“All right, then, I'll go to hell.” – Huck Finn