Event und Eventhandler
Ernesto
- javascript
Hallo,
ich habe eine Überwachung für einen spez. Keycode installiert mit:
document.onkeypress = getNewKeyCode;
In der folgenden Funktion wird ein Schlüssel keyZoom bestimmt:
function getNewKeyCode(keyEvent)
{
if (!keyEvent) { keyEvent = window.event; }
if (navigator.appName == "Microsoft Internet Explorer")
{
if (keyEvent.keyCode == 122) { keyZoom = true; }
else { keyZoom = false; }
}
else
{ if (navigator.appName == "Netscape")
{
if (keyEvent.which == 122) { keyZoom = true; }
else { keyZoom = false; }
}
else
{
alert("Browser wird hier nicht berücksichtigt.");
keyZoom = false;
}
}
}
Abhängig vcn keyZoom wird dann später, wenn noch auf ein bestimmtes
Bild geklickt wird, verzweigt. Das klappt auch genau einmal. Wenn
ich ein zweites Mal die Taste Z klicke, kommt der Programm-Ablauf gar nicht mehr in die obige Funktion.
Woran kann das liegen? Muß ich da etwas zurücksetzen oder neu anstoßen?
Vielen Dank im Voraus
Ernesto
Hallo,
ich glaube zu wissen, woran es liegt, daß nach einmal funktionieren,
die weitere Überwachung nicht meht klappt:
In der Zoom-Funktion wird ein weitere Key-Überwachung gestartet.
Kann man nach der Zoom-Funktion die alte Key-Überwachung wieder aktiv
machen?
Indem man den Key-Überwacher noch mal aufruft??? Mit:
document.onkeypress = getNewKeyCode;
Vielen Dank im Voraus
Ernesto
In der Zoom-Funktion wird ein weitere Key-Überwachung gestartet.
https://forum.selfhtml.org/?t=178746&m=1178971
Mathias
function getNewKeyCode(keyEvent)
{
if (!keyEvent) { keyEvent = window.event; }
Beim Zugriff auf das Event-Objekt benutzt du eine sinnvolle Objektabfrage, wieso bleibst du nicht bei dem Schema und führt eine »Browserweiche« ein?
if (navigator.appName == "Microsoft Internet Explorer")
{
if (keyEvent.keyCode == 122
else
{ if (navigator.appName == "Netscape")
{
if (keyEvent.which == 122) { keyZoom = true; }
Diese »Browsererkennung« ist unnütz. Es gibt nicht nur diese beiden Browser und der Rückschluss über navigator.appName ist unzuverlässig. Wie du selbst siehst, geht es um die Eigenschaften keycode und which. Also fragst du ab, welche davon gesetzt ist und verwendest die gesetzte.
if (keyEvent.which) {
var key = keyEvent.which;
} else if (keyEvent.keyCode) {
var key = keyEvent.keyCode;
}
Oder kürzer:
var key = keyEvent.which || keyEvent.keyCode;
Danach einfach:
keyZoom = (key == 122) ? true : false;
http://de.selfhtml.org/javascript/sprache/bedingt.htm#entweder_oder
https://redaktion.selfhtml.org/selfhtml-preview/javascript/browser.html
Mathias
Hi,
keyZoom = (key == 122) ? true : false;
Noch kürzer:
keyZoom = (key == 122);
cu,
Andreas