Disparando un evento de teclado en Chrome

Estoy intentando disparar un evento de teclado a una página usando javascript en Chrome. Tuve un enfoque que solía funcionar en 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);
}

donde clave es la clave deseada y keyCode cambia las letras minúsculas a mayúsculas y también llama a charCodeAt ().

Mi problema es que los eventos en Safari / Chrome no tienen initKeyEvent, sino initKeyboardEvent. La principal diferencia que noté fue que tiene que pasar la clave como un identificador de claves (que parece un carácter Unicode) en lugar de pasar el código de clave y el keychar. Sin embargo, todavía no puedo lograr que funcione.

También he probado el enfoque de JQuery descrito.aquí sin éxito.

EDITAR: Depuré esto un poco más y parece que el evento en Chrome dispara a los oyentes, pero keyCode / charCode siempre es 0. He intentado configurar evt.keyCode o evt.charCode sin éxito tampoco.

Respuestas a la pregunta(5)

Su respuesta a la pregunta