В веб-приложении, созданном с использованием Chrome, имитация события нажатия клавиши в элементе текстовой области может столкнуться с проблемами. Несмотря на попытку указать конкретный код ключа, текстовая область может получить неправильное значение ключа, например, клавишу Enter вместо желаемой клавиши.
Чтобы решить эту проблему, вы можете использовать собственный код, который переопределяет оба параметра ' keyCode» и «который» в объекте «KeyboardEvent». «keyCode» — это устаревшее свойство, которое было устаревшим в пользу «который». Chrome ведет себя по-разному со следующими свойствами:
Следующий код представляет собой пример того, как имитировать событие нажатия клавиши с правильным значением «который» в Chrome:
var keyEvent = document.createEvent('KeyboardEvent');
// Override 'keyCode' and 'which' properties
Object.defineProperty(keyEvent, 'keyCode', { get: function() { return this.keyCodeVal; } });
Object.defineProperty(keyEvent, 'which', { get: function() { return this.keyCodeVal; } });
keyEvent.initKeyboardEvent('keydown', true, false, null, 0, false, 0, false, 77, 0);
keyEvent.keyCodeVal = 77;
inputNode.dispatchEvent(keyEvent);
Этот код переопределяет свойства «keyCode» и «what», гарантируя, что Chrome правильно интерпретирует событие и запускает желаемое значение ключа (77) для клавиши «m».
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3