Disparando um evento de teclado no Chrome
Estou tentando disparar um evento de teclado para uma página usando o javascript no Chrome. Eu tinha uma abordagem que costumava funcionar no Firefox:
pressKey = function(key, shift) {
var evt = document.createEvent('KeyboardEvent');
evt.initKeyEvent("keypress", false, true, null, false, false,
shift, false, keyCode(key), key.charCodeAt(0));
document.dispatchEvent(evt);
}
onde key é a chave desejada e keyCode altera letras minúsculas para maiúsculas e também chama charCodeAt ().
Meu problema é que os eventos no Safari / Chrome não têm initKeyEvent, mas initKeyboardEvent. A principal diferença que pude notar foi que você tem que passar a chave como um keyIdentifier (que se parece com um caractere unicode) em vez de passar o keycode eo keychar. No entanto, ainda não consigo fazer funcionar.
Eu também tentei a abordagem JQuery descritaAqui sem sucesso.
EDITAR: Depurei isso um pouco mais e parece que o evento no Chrome acionar os ouvintes, mas keyCode / charCode é sempre 0. Eu tentei definir evt.keyCode ou evt.charCode sem sucesso também.