我想在js中模拟按键。最好不要指定任何元素。
我想这样做的方法是在输入上使用.focus()然后模拟按键,如字符" a"。
如果我自己按键,就会发生同样的事情。 通过互联网搜索我发现没有解决方案。它可能与模拟事件和输入字段的组合有关。有时我可以捕捉事件,但输入字段中没有输入。非常感谢您提前寻求帮助。
编辑1: 这不应被视为:Is it possible to simulate key press events programmatically?
的共同体因为这不能解决我的问题。我已经尝试过了。
编辑2: 请不要仅仅因为你不知道如何回答这个问题。
答案 0 :(得分:0)
如果你有或可以包含jQuery,这是简单的方法
使用jQuery
jQuery.event.trigger({ type: 'keydown', which: 78 }); // press n key
要模拟输入字段中的按键事件,请像这样使用
var e = jQuery.Event("keydown");
e.which = 78; // n code value
e.altKey = true; // Alt key pressed
$("#inputBox").trigger(e);
没有jQuery
var kbEvent= document.createEvent("KeyboardEvent");
var initMethod = typeof kbEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
kbEvent[initMethod](
"keydown", // event type : keydown, keyup, keypress
true, // bubbles
true, // cancelable
window, // viewArg: should be window
false, // ctrlKeyArg
false, // altKeyArg
false, // shiftKeyArg
false, // metaKeyArg
78, // keyCodeArg : unsigned long the virtual key code , else 0
0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
);
document.dispatchEvent(kbEvent);
上面的代码实际上不会修改你的输入值,它只会模拟击键
有关详细信息,请参阅此帖子 How to simulate typing in input field using jQuery?
您需要的是:fn.sendKeys