Я пытаюсь надежно определить, когда китайские иероглифы вставляются в текстовое поле. Если я добавлю обработчики keyup, keydown и keypress в поле ввода, событие не будет запущено, когда пользователь выберет китайский символ из IME (редактор метода ввода). Например, на Mac / Firefox с китайским упрощенным пиньян, если я наберу:
ni, затем нажмите 1
Я получаю событие нажатия клавиши только для «n», а нажатие клавиши вверх для «1». Событие нажатия клавиши не запускается. Примечание: я использую GWT, но не думаю, что это должно иметь значение.
Мне было любопытно, как Google Docs делает это. Я специально заметил для китайского языка символ «n», добавляемый в виде текста к скрытому iframe с помощью класса «docs-texteventtarget-iframe» (но не «i»). Я предполагаю, что они делают это, чтобы обнаружить, когда вставлен китайский символ.
Как Google Docs узнает, что язык ввода изменился на китайский? Например, если мой язык ввода английский, и я набираю 'n', он не добавляется к этому скрытому iframe. Существуют ли какие-либо распространенные методы обнаружения событий клавиш китайских иероглифов?