javascript, симуляция событий клавиатуры, работа над chrome (webkit) - PullRequest
2 голосов
/ 31 января 2011

в FF, я использовал этот код:


if (keyCount == lineLimit) {
    // method in FF, no Chrome
    var mock = document.createEvent("KeyboardEvent"); // or KeysEvent
    mock.initKeyEvent("keypress",true,true,null,false,false,false,false,14,0);
    var x = document.getElementById('InputCategory');
    // rise height before Enter
    $(this).height(div_height + font_height + offset_height);
    // mock Enter
    x.dispatchEvent(mock);
    // init keyCount
    keyCount = 0;
}

он работает, но не может быть эффективным в браузерах на основе webkit, таких как Chrome.

, поэтому я спросил Google, и обнаружил, что событие клавиатуры является одним из событий DOM уровня 3, вот статья: http://www.w3.org/TR/DOM-Level-3-Events/

тогда я знал / * initKeyboardEvent /не поддерживается в chrome & safari, / initUIEvent * / я пробовал, это тоже не сработало.

Можно ли смоделировать события виртуальной клавиатуры на Chrome?Пожалуйста, помогите мне:)

1 Ответ

2 голосов
/ 31 января 2011

Это работает, но это не генерирование события нажатия клавиши, а событие вставки текста.

var te = document.createEvent('TextEvent');
te.initTextEvent('textInput', true, true, window, 'test');
<element>.dispatchEvent(te);

Это вставляет слово «тест» в конце ввода (в вашем случае вы, вероятно, замените его на \n.

...