Der Martin: Events im Firefox

Beitrag lesen

Hallo,

window.onload = function() {

document.getElementById('meinInput').addEventListener('click', meinInputEvent);
};

function meinInputEvent(e)
{
// Für Leute die einen veralteten Internet Explorer haben
e = e || window.event;

// Eigentliche Funktion
if (e.keyCode == 13)
  {
  alert('Du hast auf Enter geklickt');
  return false;
  }
}

  
das ist ganz bestimmt "sauber": Keine Vermischung von HTML und Javascript, keine globalen Variablen (bis auf den Zugriff auf window.event, der für alte IEs nötig ist). Nur ein logischer Fehler fällt auf: Du registrierst deinen Eventhandler für das click-Ereignis - ein click-Event hat aber keine (sinnvolle) Informationen in keyCode.  
Vermutlich meintest du 'keyup' oder 'keypress' als auslösendes Event.  
  
Und noch etwas: Der onload-Handler des window-Objekts löst erst aus, wenn auch alle untergeordneten Ressourcen (Bilder, Scripts, Stylesheets) fertig geladen sind. Das kann unter Umständen eine Weile dauern. In der Zeit ist deine Eventhandler-Funktion dann noch nicht "scharf".  
Der pragmatische Kompromiss ist, die Initialisierung der Eventhandler nicht erst 'onload' zu machen, sondern diese eine Script-Zeile "einfach so" am Ende des Dokuments, also vor dem schließenden body-Tag zu notieren.  
  
So long,  
 Martin  

-- 
Ein Patriot ist jemand, der bereit ist, sein Land gegen seine Regierung zu verteidigen.  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(