Node.js - 模拟按键而不指定元素

pls*_*elp 5 javascript testing simulation keyboard key

我想用 JavaScript 模拟按键。最好不指定任何元素。

我想要的方法是.focus()在输入上使用,然后模拟按键,例如字符“a”。

如果我自己按下该键,也会发生同样的事情。

通过互联网搜索我没有找到解决方案。这可能与模拟事件和输入字段的组合有关。有时我可以捕获事件,但输入字段中没有输入。

请注意,这不应被视为重复Is it possible to Analog key press events programmatically? 因为这并不能解决我的问题。我已经尝试过了。

Aja*_*nth 1

如果您拥有或可以包含 jQuery,这是简单的方法

使用 jQuery

jQuery.event.trigger({ type: 'keydown', which: 78 }); // press n key
Run Code Online (Sandbox Code Playgroud)

要模拟输入字段中的按键事件,请像这样使用

var e = jQuery.Event("keydown");
e.which = 78; // n code value
e.altKey = true; // Alt key pressed
$("#inputBox").trigger(e);
Run Code Online (Sandbox Code Playgroud)

没有 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);
Run Code Online (Sandbox Code Playgroud)

上面的代码实际上不会为你修改输入值,它只会模拟击键

请参阅这篇文章了解更多信息 如何使用 jQuery 模拟输入字段中的输入?

你需要的是:fn.sendKeys

  • 我已经多次看到这段代码,但它不起作用。我的输入字段中没有出现任何内容。 (5认同)