HighDots Forums  

Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...)

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...) in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Michael Vogel
 
Posts: n/a

Default Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...) - 08-06-2007 , 11:11 AM






Moin!

Ich muss zugeben, in JS noch nicht sehr viele Schritte unternommen zu
haben, das nur vorweg ;-)

Mir geht es um Folgendes: Mit Hilfe des Attributes "Accesskey" kann man
ja modernen Browsern sagen, dass sie bestimmte Dinge bei Tastendruck
durchführen sollen. Mich stört dabei nur, dass es anscheinend lediglich
die Buchstaben von a bis z sind und dass man sie z.B. beim Firefox per
Shift+Alt erreicht.

Geht das nicht in JS besser? Ich habe eben ein wenig mit ".altkey" und
Co. rumgespielt. Gut ist, dass das System darauf reagiert und ich mit
der Eigenschaft "which" auch herausfinde, welche Taste dort gedrückt
wurde. Schlecht ist, dass ich anscheinend nicht die weitere Verarbeitung
des Tastendrucks unterdrücken kann (d.h. ein Alt+F ruft immer den Dialog
zum Suchen auf). Zusätzlich ist sich das System anscheinend auch nicht
so recht sicher, wieviele Meldungen kommen. Manchmal kommt nur eine
Meldung mit dem richtigen Tastencode, manchmal aber kommt auch zuerst
eine Meldung mit Tastencode "0".

Gibt es irgendeine Chance, das Event zurückzusetzen, so dass sich der
Browser nicht mehr darum kümmert? Oder können die Browser-Shortcuts
deaktiviert werden?

Ich habe fleißig Google bemüht, jedoch keine Lösung gefunden, nur
Hinweise, dass andere ebenfalls dieses Problem haben.

Michael

Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...) - 08-06-2007 , 11:18 AM






Michael Vogel wrote:
Quote:
Mir geht es um Folgendes: Mit Hilfe des Attributes "Accesskey" kann man
ja modernen Browsern sagen, dass sie bestimmte Dinge bei Tastendruck
durchführen sollen. Mich stört dabei nur, dass es anscheinend lediglich
die Buchstaben von a bis z sind und dass man sie z.B. beim Firefox per
Shift+Alt erreicht.

Geht das nicht in JS besser?
Es geht mit DOM-Scripting (die Programmiersprache ist da zweitrangig), aber
nicht besser. Grund: Für den Accessibility Key wird im Firefox bewusst
Shift+Alt verwendet, weil Alt+Buchstabentaste bzw. Ctrl+Buchstabentaste
schon für den Zugriff auf die Menüs und Zusatzfunktionen verwendet werden.
Andere UAs implementieren den Shortcut entsprechend. Wenn Du jetzt also mit
Scripting manipulierst, machst Du den UA des Benutzers kapott.


HTH

PointedEars


Reply With Quote
  #3  
Old   
Michael Vogel
 
Posts: n/a

Default Re: Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...) - 08-06-2007 , 11:58 AM



Thomas 'PointedEars' Lahn schrieb:
Quote:
Michael Vogel wrote:
Mir geht es um Folgendes: Mit Hilfe des Attributes "Accesskey" kann man
ja modernen Browsern sagen, dass sie bestimmte Dinge bei Tastendruck
durchführen sollen. Mich stört dabei nur, dass es anscheinend lediglich
die Buchstaben von a bis z sind und dass man sie z.B. beim Firefox per
Shift+Alt erreicht.

Geht das nicht in JS besser?

Es geht mit DOM-Scripting (die Programmiersprache ist da zweitrangig), aber
nicht besser.
Okay.

Quote:
Grund: Für den Accessibility Key wird im Firefox bewusst
Shift+Alt verwendet, weil Alt+Buchstabentaste bzw. Ctrl+Buchstabentaste
schon für den Zugriff auf die Menüs und Zusatzfunktionen verwendet werden.
Andere UAs implementieren den Shortcut entsprechend. Wenn Du jetzt also mit
Scripting manipulierst, machst Du den UA des Benutzers kapott.
Es ist mir klar, dass ich den UA damit manipuliere, jedoch handelt es
sich bei der Applikation sowieso um eine Intranet-Lösung - da ist meiner
Meinung nach mehr erlaubt als bei einer Internet-Lösung. Wir haben z.B.
festgelegt, dass als Clients nur Firefox (und notgedrungen) der IE
erlaubt sind.

Und nun habe ich gerade festgestellt, dass der blöde IE beim Attribut
"Accesskey" leider nur den Link ("A"-Element) markiert, ihn aber nicht
ausführt :-( Kann ich ihn irgendwie dazu überreden?

Michael


Reply With Quote
  #4  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...) - 08-06-2007 , 12:19 PM



Michael Vogel wrote:
Quote:
Thomas 'PointedEars' Lahn schrieb:
Grund: Für den Accessibility Key wird im Firefox bewusst
Shift+Alt verwendet, weil Alt+Buchstabentaste bzw. Ctrl+Buchstabentaste
schon für den Zugriff auf die Menüs und Zusatzfunktionen verwendet werden.
Andere UAs implementieren den Shortcut entsprechend. Wenn Du jetzt also mit
Scripting manipulierst, machst Du den UA des Benutzers kapott.

Es ist mir klar, dass ich den UA damit manipuliere, jedoch handelt es
sich bei der Applikation sowieso um eine Intranet-Lösung - da ist meiner
Meinung nach mehr erlaubt als bei einer Internet-Lösung. Wir haben z.B.
festgelegt, dass als Clients nur Firefox (und notgedrungen) der IE
erlaubt sind.
Ich weiss aus Erfahrung, dass das nicht so bleiben wird. Abgesehen davon --
wieviele zukünftige Browser-Versionen und aktuelle sowie zukünftige
Firefox-Extensions, von der jede jeweils ihre eigene Übersetzung und diese
wiederum ihre eigenen Shortcuts mitbringen wird, willst Du in Deinem Script
berücksichtigen? Die zu erwartenden Wartungskosten allein könnten
mindestens einen weiteren Arbeitsplatz finanzieren -- und unendlich langsam
wird die Intranet-Site wegen des entsprechenden Bloatcodes dann auch.

Vier bekommen es. [psf 4.13]


PointedEars
--
Der erfahrene IE-Fahrer weiß, daß man Slalom am besten im ersten Gang fährt,
weil schnelles Lenkradumreißen bei IE zum Lenkradabreißen führt. Wer
sportlich fahren will, muß Netscape fahren und hin und wieder auch mal
anschieben. ;-) Georg Maaß in dcljs <amuqrl$91i3q$1 (AT) ID-3551 (DOT) news.dfncis.de>


Reply With Quote
  #5  
Old   
Michael Vogel
 
Posts: n/a

Default Re: Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...) - 08-06-2007 , 12:23 PM



Update:

Michael Vogel schrieb:

Quote:
Und nun habe ich gerade festgestellt, dass der blöde IE beim Attribut
"Accesskey" leider nur den Link ("A"-Element) markiert, ihn aber nicht
ausführt :-( Kann ich ihn irgendwie dazu überreden?
Ja, ich kenne "onfocus", aber es ist nur eine halbe Lösung, da dann die
Aktion auch ausgeführt wird, wenn ich per Tab über das Feld gehe. :-(
Habe ich eine Chance zu sehen, wieso ich auf das Feld gegangen bin? D.h.
welche Taste dies ausgelöst hat?

Michael


Reply With Quote
  #6  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Auf Tastendruck reagieren (wie Accesskey - nur mit Alt+Buchstabe,CTRL+Buchstabe, F-Tasten, ...) - 08-10-2007 , 01:31 PM



Michael Vogel wrote:
Quote:
Michael Vogel schrieb:
Und nun habe ich gerade festgestellt, dass der blöde IE beim Attribut
"Accesskey" leider nur den Link ("A"-Element) markiert, ihn aber nicht
ausführt :-( Kann ich ihn irgendwie dazu überreden?

Ja, ich kenne "onfocus", aber es ist nur eine halbe Lösung, da dann die
Aktion auch ausgeführt wird, wenn ich per Tab über das Feld gehe. :-(
Habe ich eine Chance zu sehen, wieso ich auf das Feld gegangen bin? D.h.
welche Taste dies ausgelöst hat?
Ja.


PointedEars
--
Quote:
ECMAScript ist somit nicht mit dem W3C-DOM kompatibel. Richtig?
Hunde sind zu Fischsuppe nicht kompatibel. Nachts ist es kälter als
draußen. Wo ist der Zusammenhang zwischen W3C-DOM unter z.B. Java oder
PHP und ECMA-Script? (Georg Maaß in dcljs <3D118071.4030904 (AT) vnett (DOT) de>)


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.