В поле ввода или contenteditable = true div, как я могу изменить нажатие клавиши для буквы «a», чтобы вернуть keybress для буквы «b»? I.e., каждый раз, когда вы вводите букву «a» в div, вывод на самом деле является буквой «b».Изменение нажатия клавиши
Я не занимаюсь решением, которое работает в IE - только тот, который работает в Safari, Chrome, & FF.
В Chrome я вижу, что событие keypress имеет свойства «charCode», «keyCode» и «which», которым присваивается номер события нажатия клавиши. Если я запускаю событие при нажатии клавиши, я могу изменить эти значения, но я не могу понять, что вернуть, чтобы фактический ключ, который набрал, был другим. Например:
$(window).keypress(function(e){ //$(window) is a jQuery object
e.charCode = 102;
e.which = 102;
e.keyCode = 102;
console.log(e);
return e;
});
Я также могу видеть, что наряду с charCode, который и KEYCODE, есть также свойство «originalEvent», который, в свою очередь, также обладает этими свойствами. Однако я не смог их изменить (я пробовал такие вещи, как e.originalEvent.charCode = 102).
Спасибо Тим. Функция insertTextAtCursor(), которую вы написали в первой ссылке, которую вы дали, делает трюк! – maxedison
Очень спасибо Тиму, я завершаю один день на случай исследования «как сменить ключевое слово на английский язык?» но я не нашел оптимизацию & маленький & Интеллектуальный, пока не нашел ваш ответ. –
Я реализую «Пример IE-не-IE jsFiddle» и делится в стеке и gitbub для помощи всем. , который поддерживает все другие языки. еще раз спасибо. –