Rocksolid Light

groups  faq  privacy  How to post  login

Message-ID:  

But, for my own part, it was Greek to me. -- William Shakespeare, "Julius Caesar"


rocksolid / de.comp.lang.javascript / Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?

SubjectAuthor
* Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?Janis Papanagnou
`* Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?Stefan Ram
 `* Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?Janis Papanagnou
  `- Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?Peter J. Holzer

1
Subject: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
From: Janis Papanagnou
Newsgroups: de.comp.lang.javascript
Organization: A noiseless patient Spider
Date: Mon, 30 Oct 2023 14:39 UTC
Path: i2pn2.org!i2pn.org!nntp.comgw.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_pa...@hotmail.com (Janis Papanagnou)
Newsgroups: de.comp.lang.javascript
Subject: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
Date: Mon, 30 Oct 2023 15:39:57 +0100
Organization: A noiseless patient Spider
Lines: 36
Message-ID: <uhof7u$g9ot$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 30 Oct 2023 14:39:58 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ed0e625543b7f46f4ccf8e6e53e06a5";
logging-data="534301"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18kSLmO7fI5X2n7w/y02QW/"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:/Y4uvRtK4VLYKVX8Sv+IAA8tayw=
X-Mozilla-News-Host: news://news.eternal-september.org:119
X-Enigmail-Draft-Status: N1110
View all headers

Zur Steuerung einer Javascript-Applikation im Browser auf einem
Linux-System nutze ich folgende Javascript Statements... (Excerpt)

function init_keyevents ()
{
document.addEventListener("keydown", keyEvent);
}

function keyEvent (ev)
{
var code = ev.code;
var key = ev.key;
alert("Code: '"+code+"' Key: '"+key+"'");
...
}

Was hier unter ev.code und ev.key in der alert-Box angezeigt wird
ist allerdings nicht konsistent. Beispiel:

Ausgabe

Code: 'Semicolon' Key: 'ö'

Ich erhalte _dieselbe_ Ausgabe
+ bei deutscher Tastatur beim Tippen von 'ö'
+ bei amerikanischer Tastatur bei Tippen von ';'

D.h. für keine der Tastaturen (US, DE) ist das Ergebnis konsistent.

Bzgl. dieser Inkonsistenz grundsätzlich und bzgl. des Schreibens
von Anwendungen, für die keine hart-codierbare Annahmen über die
verwendete Tastatur vorausgesetzt werden können: Wie wird hier in
der Praxis mit dieser Situation (üblicherweise) umgegangen?

Janis

Subject: Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
From: Stefan Ram
Newsgroups: de.comp.lang.javascript
Organization: Stefan Ram
Date: Mon, 30 Oct 2023 15:19 UTC
References: 1
Path: i2pn2.org!i2pn.org!nntp.comgw.net!fu-berlin.de!uni-berlin.de!not-for-mail
From: ram...@zedat.fu-berlin.de (Stefan Ram)
Newsgroups: de.comp.lang.javascript
Subject: Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
Date: 30 Oct 2023 15:19:32 GMT
Organization: Stefan Ram
Lines: 26
Expires: 1 Sep 2024 11:59:58 GMT
Message-ID: <key-20231030161919@ram.dialup.fu-berlin.de>
References: <uhof7u$g9ot$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de QCIqJvv6W/JwKp850YIByQ/QajlRhTaNoVhtK+aNR1bqOv
Cancel-Lock: sha1:cN4Yy8qbBYZXTh8kFezXRXmmYa8= sha256:xJ2B+oMRFXl4djsBtk0AXBKVmJCNNSBG9Qk/hx4R7Wk=
X-Copyright: (C) Copyright 2023 Stefan Ram. All rights reserved.
Distribution through any means other than regular usenet
channels is forbidden. It is forbidden to publish this
article in the Web, to change URIs of this article into links,
and to transfer the body without this notice, but quotations
of parts in other Usenet posts are allowed.
X-No-Archive: Yes
Archive: no
X-No-Archive-Readme: "X-No-Archive" is set, because this prevents some
services to mirror the article in the web. But the article may
be kept on a Usenet archive server with only NNTP access.
X-No-Html: yes
Content-Language: de-DE-1901
Accept-Language: de-DE-1901, en-US, it, fr-FR
View all headers

Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
>alert("Code: '"+code+"' Key: '"+key+"'");
....
>Code: 'Semicolon' Key: 'ö'
>Ich erhalte _dieselbe_ Ausgabe
>+ bei deutscher Tastatur beim Tippen von 'ö'
>+ bei amerikanischer Tastatur bei Tippen von ';'

"code" ignoriert laut MDN die Lokalisierung und verwendet
immer die US-Anordnung. Das heißt rechts von der Taste [T]
ist immer [Y]. Das [ö] auf der deutschen Tastatur ist dort,
wo bei der US-Tastatur das ";" ist. Also ist "code" dort ";".

"key" ergibt den Wert der Taste gemäß der lokalisierten
Einstellungen für die Anordnung. Wenn man bei einer deutschen
Anordnung [ö] tippt sollte dies "ö" sein. Wenn man bei einer
amerikanischen Tastatur [;] tippt, sollte dies ";" sein.

Das heißt, das einzige, was bei Dir nicht spezifikationsgemäß
ist, wäre daß bei Dir bei einer amerikanischen Tastatur "key"
gleich "ö" ist, wenn Du dort [;] drückst. Hier würde ich erst
einmal noch auf anderem Wege prüfen, ob es sich wirklich um
eine US-Anordnung handelt. JavaScript sollte dort normalerweise
"Code: 'Semicolon' Key: ';'" ausgeben.

Subject: Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
From: Janis Papanagnou
Newsgroups: de.comp.lang.javascript
Organization: A noiseless patient Spider
Date: Mon, 30 Oct 2023 16:28 UTC
References: 1 2
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_pa...@hotmail.com (Janis Papanagnou)
Newsgroups: de.comp.lang.javascript
Subject: Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
Date: Mon, 30 Oct 2023 17:28:25 +0100
Organization: A noiseless patient Spider
Lines: 65
Message-ID: <uholja$hg90$1@dont-email.me>
References: <uhof7u$g9ot$1@dont-email.me>
<key-20231030161919@ram.dialup.fu-berlin.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 30 Oct 2023 16:28:26 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ed0e625543b7f46f4ccf8e6e53e06a5";
logging-data="573728"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19P+CxSsHlN+X6+KYj+BEzM"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:9bSOYsO0I0S2ghdmNilMmxf8wt0=
X-Enigmail-Draft-Status: N1110
In-Reply-To: <key-20231030161919@ram.dialup.fu-berlin.de>
View all headers

On 30.10.2023 16:19, Stefan Ram wrote:
> Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
>> alert("Code: '"+code+"' Key: '"+key+"'");
> ...
>> Code: 'Semicolon' Key: 'ö'
>> Ich erhalte _dieselbe_ Ausgabe
>> + bei deutscher Tastatur beim Tippen von 'ö'
>> + bei amerikanischer Tastatur bei Tippen von ';'

Vielen Dank für die schnelle Antwort!

> "code" ignoriert laut MDN die Lokalisierung und verwendet
> immer die US-Anordnung. Das heißt rechts von der Taste [T]
> ist immer [Y]. Das [ö] auf der deutschen Tastatur ist dort,
> wo bei der US-Tastatur das ";" ist. Also ist "code" dort ";".

Okay, für die DE Tastatur erhalte ich Code: 'KeyY' Key: 'z' .
Verstehe, das ist also spezifikationsgemäß.

(Ich frage mich nur, wie die (104 Keys?) US-Spezfikation dann den
105-ten Key einer deutschen Tastatur abbildet. Aber erstmal egal.)

>
> "key" ergibt den Wert der Taste gemäß der lokalisierten
> Einstellungen für die Anordnung. Wenn man bei einer deutschen
> Anordnung [ö] tippt sollte dies "ö" sein. Wenn man bei einer
> amerikanischen Tastatur [;] tippt, sollte dies ";" sein.
>
> Das heißt, das einzige, was bei Dir nicht spezifikationsgemäß
> ist, wäre daß bei Dir bei einer amerikanischen Tastatur "key"
> gleich "ö" ist, wenn Du dort [;] drückst. Hier würde ich erst
> einmal noch auf anderem Wege prüfen, ob es sich wirklich um
> eine US-Anordnung handelt.

Ich habe zwei Tastaturen parallel an meinem System verwendbar,
eine US amerikanische mit standard US-Layout (104 keys) und
eine typische (moderne) deutsche (105 keys); also zwei Devices.
Mein System kann beide parallel verwenden, ich kann hier wie
dort, auch immer abwechelnd, Zeichen eingeben. Alle Zeichen,
gleich von welcher Tastatur, werden normalerweise immer korrekt
nach Layout übertragen. - Allerdings stelle ich gerade fest,
dass nach einer Rekonfiguration des Systems dieses nun bessere
Ergebnisse erzeugt, mit diesem (leicht veränderten, insgesamt
stimmigeren) Ergebnis...

> JavaScript sollte dort normalerweise
> "Code: 'Semicolon' Key: ';'" ausgeben.

DE ö Code: 'Semicolon' Key: 'ö'
US ; Code: 'Semicolon' Key: ';'
DE ; Code: 'Comma' Key: ';'

D.h. der "Code" (nach Spec) konsistent - da "DE ;" mit "Shift-,"
erzeugt wird, daher "Comma" - und die Werte der Keys sind dann
zumindest konsistent und bilden die darstellbaren Zeichen ab.

Und für die Behandlung der Sondertasten verwende ich dann am
besten ebenfalls den "Key" (und nicht den "Code"). Denn ich muss
nicht umbedingt (z.B.) Ctrl-Left von Ctrl-Right unterscheiden,
es reicht zu wissen, dass es "Control" ist.

Nochmals vielen Dank; ich habe jetzt Gewissheit, wie es "tickt".

Janis

Subject: Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
From: Peter J. Holzer
Newsgroups: de.comp.lang.javascript
Organization: LUGA
Date: Mon, 30 Oct 2023 17:57 UTC
References: 1 2 3
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!tahina.priv.at!news.luga.at!.POSTED.212.17.106.130!not-for-mail
From: hjp-usen...@hjp.at (Peter J. Holzer)
Newsgroups: de.comp.lang.javascript
Subject: Re: Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?
Date: Mon, 30 Oct 2023 18:57:48 +0100
Organization: LUGA
Message-ID: <slrnujvrks.qfnm.hjp-usenet3@trintignant.hjp.at>
References: <uhof7u$g9ot$1@dont-email.me>
<key-20231030161919@ram.dialup.fu-berlin.de> <uholja$hg90$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Injection-Info: vinge.luga.at; posting-host="212.17.106.130";
logging-data="5456"; mail-complaints-to="usenet@vinge.luga.at"
User-Agent: slrn/1.0.3 (Linux)
View all headers

On 2023-10-30 16:28, Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
> Okay, für die DE Tastatur erhalte ich Code: 'KeyY' Key: 'z' .
> Verstehe, das ist also spezifikationsgemäß.
>
> (Ich frage mich nur, wie die (104 Keys?) US-Spezfikation dann den
> 105-ten Key einer deutschen Tastatur abbildet. Aber erstmal egal.)

Keycodes sollten für ziemlich alle Tasten definiert sein, die es
irgendwo auf einer Tastatur gibt oder gegeben hat. Im Vergleich zu dem
Wildwuchs an Sondertasten, die in den 80er-Jahren üblich waren, ist eine
DIN-Tastatur harmlos ;-). Die Namen orientieren sich am amerikanischen
Layout, sind aber im Prinzip bedeutungslos. Man hätte die auch einfach
durchnummerieren oder nach Disneyfiguren benennen können.

Hier (Firefox/Chrome/Edge auf Linux bzw. Windows) wird die Taste links
unten zwischen Shift und Y als "IntlBackslash" gemeldet. Das sollte auf
anderen Betriebssystemen auch so sein, aber das sind die einzigen, die
ich testen kann.

hp


rocksolid / de.comp.lang.javascript / Key-Events - Umgang mit inkonsistenter Ausgabe bei code/key ?

1
server_pubkey.txt

rocksolid light 0.9.12
clearnet tor