当光标使用Javascript进入输入文本字段时,如何发送键组合(如Ctrl + C或Alt + Shift)?
我没有使用jQuery 但是正在使用MS-Ajax。是否可以使用MS-Ajax DOM?
编辑1)
根据@Ghostoy的帮助,我写了这段代码:
function simulateKeyPress() {
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keypress", true, true, window,
0, 0, 0, 0,
0, "e".charCodeAt(0))
var canceled = !body.dispatchEvent(evt);
if (canceled) {
alert("canceled");
} else {
alert("not canceled");
}
}
但是当它被调用时我得到了一个错误:
Error: Object doesn't support property or method 'initKeyEvent'
然后我将KeyboardEvent
更改为KeyEvents
我收到了此错误:
Error: DOM Exception: NOT_SUPPORTED_ERR (9)
我的错在哪里?
答案 0 :(得分:2)
模拟关键事件并不容易。看到这个问题: Simulating user input for TDD JavaScript。你最好尝试其他的解决方法。
答案 1 :(得分:1)
更改
evt.initKeyEvent(...)
至
evt.initKeyboardEvent(...)
或更改为jQuery:)
答案 2 :(得分:0)
您无法触发关键事件,就像用户实际按下了该键一样。有关相关问题,请参阅here。您可以触发自己bindings
的事件,就像这样(JSFiddle here,从上面的答案中复制):
var e = jQuery.Event("keydown");
e.which = 50; // # Some key code value
$("input").trigger(e);
答案 3 :(得分:0)
有一个答案!我们只需要扩展JQ事件及其所有需要的属性,请参见此处: http://bresleveloper.blogspot.co.il/2013/03/jsjq-simulate-enter-event.html