2009-05-17 3 views
0

В настоящее время я слушаю «Ввод», чтобы начать отправку сообщения,Как обнаружить многобайтовые символы, вводящие конец на javascript?

Но для многобайтовых символов ключ «Ввод» должен выбрать определенный символ.

Проблема заключается в том, что я понятия не имею, как определить, является ли пользователь в середине ввода

многобайтный персонажу, и даже если он в этом процессе, то сообщение будет отправлено первым

Время, которое он нажимает на клавишу «Ввод».

Таким образом, пользовательский интерфейс действительно странный.

У кого-нибудь есть решение?

Если вы не получите то, что я имею в виду выше, можно попробовать прямо здесь,

и как только вы начали разговор, переключение на многобайтную режим,

тогда вы будете знать, что я имею в виду.

ссылки здесь:

http://maishudi.com/OMegle.php

ответ

0

Я принимаю вашу ссылку на многобайтный вход является ссылкой на "Методы ввода" (или "Input Method Editors" на окнах).

К сожалению, на данный момент нет никакого реального решения - DOM3 собирался добавить механизмы для этого, но, похоже, это снизило его из-за сложности.

Часть сложности связана с совершенно различным поведением отдельных методов ввода, прежде чем вы даже рассмотрите несоответствие поведения между браузерами. Хорошим примером является просто проверить, какие ключевые события вы получаете за набор действий с японским, корейским и (традиционным и упрощенным) китайцами. Браузеры не могут этого избежать, поскольку они реагируют на события, запускаемые непосредственно редакторами ввода.

Единственное, на что вы можете положиться, - события keyDown, и даже тогда не так много в операторе и firefox. Safari и IE предоставляют события keyDown во время композиции IME с charCode 229 и событие keyUp с charCode, соответствующий фактическому нажатому клавише.

Существует событие TextInput, но поддерживается только Safari (и прокси Chrome должна поддерживать его, а), но это не существенно лучше, чем стандартные события в любом случае: -/

Смежные вопросы