javascript - js - 在不指定元素的情况下模拟按键

标签 javascript testing keyboard key simulation

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

我想这样做的方法是在输入上使用 .focus() 然后模拟像字符“a”这样的按键。

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

在网上搜索了没找到解决办法。它可能与模拟事件和输入字段的组合有关。有时我可以捕获事件,但输入字段中没有输入。

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

最佳答案

如果你有或可以包括 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

关于javascript - js - 在不指定元素的情况下模拟按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50776431/

相关文章:

javascript - 如何使用 'selected' 和 javascript 在选项上添加 'setAttribute'

javascript - 对输入值的编程更改触发操作

javascript - 显示图像预览而不是文本

macOS 上的 Objective-C - 获取 keyDown : for Shift+Tab in NSView

android - 如何在android中点击按钮打开键盘?

javascript - 如何在运行 Mongodb 的 Mongoose 中执行脚本?

c# - 更改 DeploymentItem 的名称

java - 添加一个 TestExecutionListener

testing - grabAttributeFrom() 方法不返回属性值

c# - .NET 模拟 Ctrl+Alt+Del 发送键