Shortcut in IE/Firefox
phoenix24
- javascript
Wenn Alt + Q gedrückt werden, soll in einem Textfeld "Name" geschrieben werden. Dieser Code funktioniert im Internet Explorer:
if( window.event.altKey && window.event.keyCode == 81 ){
document.form.textfeld.value = "Name";
}
Folgender Code funktioniert nicht in Firefox:
if( window.event.altKey && window.event.which == 81 ){
document.form.textfeld.value = "Name";
}
Was muss geändert werden, damit es auch in Firefox funktioniert? Danke.
Hallo phoenix24.
Wenn Alt + Q gedrückt werden, soll in einem Textfeld "Name" geschrieben werden. Dieser Code funktioniert im Internet Explorer … [jedoch] … nicht in Firefox:
if( window.event.altKey && window.event.keyCode == 81 ){
document.form.textfeld.value = "Name";
}
Das Problem liegt hierbei, dass der IE automatisch Eventobjekte global per window.event verfügbar macht. (Und ausschließlich so.)
Im Firefox dagegen ist das Eventobjekt genau dort verfügbar, wo es erzeugt wurde. Hier in diesem Fall also wohl am ehesten beim window-Objekt. Ein mögliches Vorgehen könnte also so aussehen:
window.[ref:self811;javascript/sprache/eventhandler.htm#onkeydown@title=onkeydown] = function(e) { // e = Eventobjekt
if (!e) e = window.event; // Für IE
if (e.altKey && e.keyCode == 81) {
document.form.textfeld.value = 'Name';
}
}
Einen schönen Freitag noch.
Gruß, Mathias
Firefox klappt jetzt, IE leider nicht. Die Erklärung hat sehr geholfen. Danke!