Событие Shift+Enter JavaScript: есть ли ошибка на стандартной клавиатуре Android?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Событие Shift+Enter JavaScript: есть ли ошибка на стандартной клавиатуре Android?

Сообщение Anonymous »

Я пытаюсь разобраться, почему кажется невозможным обнаружить комбинацию Shift+Enter из JavaScript в простой текстовой области популярных мобильных операционных систем.
Основная проблема заключается в следующем: классическое веб-приложение, которое предполагает Enter для отправки и Shift+Enter для перевода строки, имеет проблемы только с Android.
По сути, код был следующим:< /p>

Код: Выделить всё

var myInput = document.getElementById( 'my-textarea' );
myInput.addEventListener('keyup', function(e) {

// if pressing "Enter"
if( e.keyCode == 13 ) {

// and if pressing "shift"
if (e.shiftKey) {

// just a new line
// this does not work on Android
} else {

// submit
}
}
} );
Как я покажу, похоже, это работает так же, как и ожидалось, в любом браузере кроме Android, который никогда не имеет ShiftKey для какого-либо истинного значения.< /p>
Вы можете проверить себя с помощью этого замечательного инструмента:
https://w3c.github.io/uievents/tools/key-event-viewer .html
Таблица событий «shift+Enter» на большинстве устройств
Если я правильно понимаю, это предполагаемая таблица событий JavaScript на большинстве устройств:
Изображение

https://w3c.github.io/uievents/tools/ke ... iewer.html
Вышеуказанная правильная ситуация была проверена в:
  • Настольный компьютер, физическая клавиатура, Linux, Firefox 111
  • Настольный компьютер, физическая клавиатура, Linux, Chromium 111
  • мобильное устройство, Android 11 LineageOS, виртуальная клавиатура «Hackers Keyboard» со стандартным браузером
  • мобильное устройство, Android 11 LineageOS, виртуальная клавиатура «Hackers Keyboard» с Firefox 110
  • не стесняйтесь добавлять другие устройства, но я совершенно уверен, что это очень правильное поведение
< h2>Таблица событий «shift+Enter» на стандартной клавиатуре Android: ошибка?
Но на многих устройствах Android с виртуальной клавиатурой по умолчанию сочетание Shift+Enter кажется просто незамеченным из JavaScript:
Изображение

https://w3c.github.io/uievents/tools/ke ... iewer.html
Вышеуказанная проблемная ситуация была воспроизведена на:
  • мобильный телефон, Android 11 LineageOS, стандартная клавиатура AOSP, Firefox 110
  • мобильный телефон, Android 11 LineageOS, стандартная клавиатура AOSP, браузер DuckDuckGo
  • мобильный телефон, Android 11 LineageOS, стандартная клавиатура AOSP, стандартный браузер
Обратите внимание, что для всех этих проблем В некоторых случаях я использовал клавиатуру по умолчанию (стандартная клавиатура Android AOSP). Так что это действительно похоже на ошибку, которая не имеет ничего общего с JavaScript и не имеет ничего общего с моими навыками веб-разработки.
Как вы нажимаете Shift+? Ввести на виртуальной клавиатуре?
Обратите внимание: я думаю, что большинство виртуальных клавиатур поддерживают простой способ ввода комбинации Shift+Enter. Типичные примеры:
  • удерживая левую клавишу Shift одним пальцем и нажимая Enter другим пальцем.
  • двойное нажатие на клавишу Shift. (чтобы он оставался активным), затем нажмите Enter.
  • перетаскивание из Shift, опускание Enter (это допустимый жест, например, для написания заглавной буквы)
[img]https://i.sstatic.net /frgpe.jpg[/img]
Например, здесь вы видите, что я дважды коснулся левого Shift (который предполагает более заметный цвет), а затем нажал Enter.

Этот конкретный снимок экрана сделан из Android 11 AOSP, который неправильно отправляет комбинацию Shift+Enter. Даже если, как вы можете видеть, она выглядит так же, как и любая другая клавиатура, поддерживающая клавишу Shift (например, так же, как виртуальная клавиатура iPhone, которая работает вместо этого).
Ресурсы
  • https://developer.mozilla.org/en-US/doc ... dEvent/key — в веб-документации Mozilla есть очень полезная страница, на которой объясняется, что должно произойти, и это означает, что то, что я вижу на клавиатуре Android, не соответствует стандарту
  • https://developer.mozilla.org/en-US/docs/Web /API/Element/keydown_event — полная документация по событию клавиатуры keydown
  • https://developer.mozilla.org/en-US/doc ... boardEvent /shiftKey — описание конкретного флага, который должен отражать состояние клавиши Shift (и похоже, что он просто не работает на этой версии клавиатуры Android)
  • https:// github.com/valerio-bozzolan/dom-event-viewer/commit/4a48a9a92818ea5bd31260326dbbc54a5c3c3e45 — я также создал форк средства просмотра событий DOM для проверки элементов , а также и да, я могу воспроизвести те же результаты даже с этим элементом
Вопросы
  • Есть ли какой-либо известный обходной путь, который можно было бы предложить программистам JavaScript в этой ситуации, чтобы распознать сдвиг + Enter на клавиатуре Android по умолчанию?
  • Это в по вашему мнению это ошибка в Android? Если да, известны ли какие-либо проблемы с исходным кодом в Android AOSP?


Подробнее здесь: https://stackoverflow.com/questions/759 ... k-keyboard
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как отправить форму при нажатии Enter и добавить новую строку при нажатии Shift+Enter в LiveWire
    Anonymous » » в форуме Php
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Как отправить форму при нажатии Enter и добавить новую строку при нажатии Shift+Enter в LiveWire
    Anonymous » » в форуме Php
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Понимание шума на экранной клавиатуре при подключенной аппаратной клавиатуре
    Anonymous » » в форуме IOS
    0 Ответы
    95 Просмотры
    Последнее сообщение Anonymous
  • Python Shift + Enter не работает в VScode с Jupyter
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • VSCode — обработка Shift+Enter
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»