javascript,模拟键盘事件,工作在chrome(webkit)

时间:2011-01-31 00:42:13

标签: javascript google-chrome keyboard-events

在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 Level 3事件之一,这里是一个aticle:http://www.w3.org/TR/DOM-Level-3-Events/

然后我知道/ * chrome&上不支持/ * initKeyboardEvent / safari,/ initUIEvent * /我试过了,它也没用。

可以在chrome上模拟虚拟键盘事件reall吗? plesase帮助我:)

1 个答案:

答案 0 :(得分:2)

这样可行,但它不会生成按键事件,而是生成文本插入事件。

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

在输入的末尾插入“test”一词(在您的情况下,您可能会将其替换为\n