0

我需要模拟用户在文本区域中按下空格键。代码必须与用户按下的键完全相同。有任何想法吗?UsingjQuery.trigger()不起作用,因为它只会触发事件处理程序来按下一个键,实际上并没有“发送”一个键到文本区域。

4

2 回答 2

2

要放入光标所在的空间,替换任何选定的文本并将光标定位在用户输入空间的位置(假设 textarea 具有焦点):

var myTextarea = document.getElementById( 'myTextarea' ),
    selStart = myTextarea.selectionStart,
    selEnd = myTextarea.selectionEnd,
    currentValue = myTextarea.value;

myTextarea.value = currentValue.substr( 0, selStart ) + ' ' + currentValue.substr( selEnd );
myTextarea.setSelectionRange( selStart + 1, selStart + 1 );

当然,如果您还需要触发空格键的“keydown”事件,则必须单独触发它,这对于 jQuery 来说很容易:

var spaceEvt = new $.Event( 'keydown', { keyCode: 32 });
$( myTextarea ).trigger( spaceEvt );
于 2013-10-02T21:31:28.337 回答
1

如果您仅出于测试目的需要它,我建议您编写一个Selenium脚本。

于 2013-10-02T18:30:02.703 回答