2011-01-31 61 views
2

,我用這個代碼:JavaScript中,模擬鍵盤事件,對鉻(WebKit的)工作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; 
} 

它的工作原理,但不能在Chrome基於WebKit的瀏覽器有效。

所以我問谷歌,發現鍵盤事件是DOM Level 3的活動之一,這裏是一個aticle:http://www.w3.org/TR/DOM-Level-3-Events/

這時我才知道/ * initKeyboardEvent /不支持Chrome &野生動物園,/ initUIEvent * /我已經嘗試過了,它也不起作用。

是否可以在chrome上模擬虛擬鍵盤事件reall? plesase幫助我:)

+1

你爲什麼不只需插入新行字符,而不是試圖以模仿enter-press? – Alxandr 2011-01-31 00:47:03

+0

@Alxandr可以工作〜但現在我只想弄清楚如何初始化鍵盤事件由js和鉻上工作 – Reorx 2011-01-31 02:00:25

回答

2

這可以工作,但它不會生成按鍵事件,而是生成文本插入事件。

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

即插入單詞「測試」在輸入結束(在你的情況下,你很可能更換,通過\n