%20%E3%81%AF%20Web%20%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%A7%E3%81%AF%E3%83%81%E3%83%AB%E3%83%80%20(~)%20%E3%81%A8%E3%81%97%E3%81%A6%E6%A4%9C%E5%87%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%20(%E9%80%86%E3%82%82%E5%90%8C%E6%A7%98).png)
Web ブラウザーのイベント ハンドラーで、チルダ (~) と引用符 (') の文字が逆の順序で取得されるという問題が発生しました。引用符を入力すると、テキスト フィールドに引用符が入力されますが、イベント ハンドラーはチルダが押されたかのようにトリガーされます。
この GIF が私が言おうとしていることを最もよく表していると思います:
ご覧のとおり、チルダ/ハッシュ キーが押されると、ブラウザは引用符の押下を検出し、引用符キーが押されると、ブラウザはチルダの押下を検出します。
正しいキー押下イベントがトリガーされるようにこれを修正する方法はありますか?
キーボード: Corsair K95 RGB Platinum (BrE レイアウト)
OS: Windows 10 Home
キーボード設定: 英語 (イギリス)
ブラウザ: Google Chrome バージョン 76.0.3809.100 (公式ビルド) (64 ビット)
答え1
これはオンライン通訳に問題があるので、「修正」するのは簡単ではありません。
基本的なキーボード レイアウトには、米国でほぼ独占的に使用されている ANSI と、他のほとんどの国で使用されている ISO の 2 つがあります。
本質的に、キーボードのレイアウトは物理的に異なっています。これは、米国英語と英国英語など、他の点では「同一」の言語マッピングであっても同じです。ANSI には z & の左側にキーがないため、バックティック ` とチルダ ~ が Caps Lock の上、1 の左側に配置されます。ISO [英国] キーボードでは、バックティック ` と論理否定記号 ¬ [Windows] または § と ± [Mac] があります。パイプ | とバックスラッシュ \ は、括弧キーの右側に移動されます。ISO には対応するキーがないため、代わりに 1 行下にあります。このキーは Mac ではマップされますが、Win ではマップされません。
@ と " も通常は入れ替わります [Win ではマップされますが、Mac ではマップされません]。
Wikipediaには、さまざまなレイアウトがあり、QWERTYキーボードはこちらMac/Win の違いも含みます。
これは、QWERTY が AZERTY や QWERTZ などに変わるなど、英語以外のキーボードの複雑さが増す前の話です。
Wikipedia - キーボードレイアウトさまざまな言語レイアウトの無数の違いをある程度説明できます。
オンライン キーボード インタープリターは、あらゆるキーの組み合わせを正確にテストするために、これらすべてを知っておく必要があります。
以下にいくつかの違いを示します - [画像はWikipedia、QWERTYページから]
米国ANSI
英国 ISO - Windows
英国 ISO - Mac