%20%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BA%D0%B0%D0%BA%20%D1%82%D0%B8%D0%BB%D1%8C%D0%B4%D0%B0%20(~)%20%D0%B2%20%D0%B2%D0%B5%D0%B1-%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0%D1%85%20(%D0%B8%20%D0%BD%D0%B0%D0%BE%D0%B1%D0%BE%D1%80%D0%BE%D1%82).png)
Я столкнулся с проблемой обработчиков событий веб-браузера, где символы тильды (~) и кавычки (') воспринимаются неправильно. Когда я ввожу кавычку, в текстовое поле вводится кавычка, но обработчик событий срабатывает так, как будто была нажата тильда.
Я думаю, эта гифка лучше всего показывает, что я пытаюсь сказать:
Как вы можете видеть, при нажатии клавиши тильда/решетка браузер определяет нажатие кавычки, а при нажатии клавиши кавычки браузер определяет нажатие тильды.
Есть ли способ исправить это, чтобы срабатывало правильное событие нажатия клавиши?
Клавиатура: Corsair K95 RGB Platinum (раскладка BrE)
ОС: Windows 10 Домашняя
Настройки клавиатуры: английский (Великобритания)
Браузер: Google Chrome версии 76.0.3809.100 (официальная сборка) (64-бит)
решение1
Эту ошибку нелегко «исправить», поскольку ошибка кроется в онлайн-переводчике.
Существуют две основные раскладки клавиатуры: ANSI, которая используется почти исключительно в США, и ISO, используемая практически всеми остальными странами.
По сути, клавиатуры физически различаются по раскладке, даже при «идентичных» сопоставлениях языков, например, американский и британский английский; в ANSI нет клавиши слева от z, поэтому она помещает обратную кавычку ` и тильду ~ над caps lock слева от 1, тогда как на клавиатуре ISO [UK] были бы обратная кавычка ` и логический знак отрицания ¬ [Windows] или § и ± [Mac]. Вертикальная черта | и обратная косая черта \ перемещены справа от клавиш квадратных скобок, тогда как в ISO соответствующей клавиши нет, но вместо этого они находятся на одну строку ниже. Эта клавиша отображается на Mac, но не на Win.
@ и " обычно тоже меняются местами [Win, но не Mac].
В Википедии есть различные макеты, применимые только кQWERTY-клавиатуры здесьвключая различия Mac/Win.
И это еще до того, как мы доберемся до дополнительных сложностей, связанных с неанглийскими клавиатурами, где даже QWERTY меняется на AZERTY или QWERTZ и т. д.
Википедия - Раскладки клавиатурыв некоторой степени объясняет многочисленные различия в раскладках разных языков.
Любому онлайн-переводчику клавиатуры необходимо знать все это, чтобы точно протестировать все возможные комбинации клавиш.
Некоторые различия ниже - [изображения из Википедии, страница QWERTY.]
ANSI США
UK ISO - Windows
Великобритания ISO - Mac