"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolver a entrada incorreta de chave durante a simulação de keydown no Chrome?

Como resolver a entrada incorreta de chave durante a simulação de keydown no Chrome?

Publicado em 2024-11-03
Navegar:474

How to Resolve Incorrect Key Input During Keydown Simulation in Chrome?

Simulação de keydown no Chrome: solução de problemas de entrada de chave incorreta

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:

  • É necessário substituir apenas 'keyCode' no Firefox ou Safari.
  • No Chrome, você precisa substituir 'keyCode' e 'qual'.

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'.

Declaração de lançamento Este artigo foi reimpresso em: 1729225517 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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