Em um aplicativo da web criado com o Chrome, simular um evento de keydown em um elemento textarea pode encontrar desafios. Apesar de tentar especificar um keyCode específico, a área de texto pode receber um valor de chave incorreto, como a tecla Enter em vez da chave desejada.
Para resolver esse problema, você pode empregar um código personalizado que substitua ambos os ' propriedades keyCode' e 'qual' no objeto 'KeyboardEvent'. 'keyCode' é uma propriedade herdada que foi descontinuada em favor de 'qual'. O Chrome se comporta de maneira diferente com estas propriedades:
O código a seguir fornece um exemplo de como simular um evento keydown com o valor 'qual' correto no 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);
Este código substitui as propriedades 'keyCode' e 'qual', garantindo que o Chrome interprete o evento corretamente e acione o valor de chave desejado (77) para a chave 'm'.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3