首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >js -模拟不指定元素的按键操作

js -模拟不指定元素的按键操作
EN

Stack Overflow用户
提问于 2018-06-10 00:40:28
回答 1查看 7.5K关注 0票数 4

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

我想要做的方式是在输入上使用.focus(),然后模拟一个类似字符"a“的按键。

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

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

非常提前感谢您的帮助。

编辑1:这不应该被认为是重复的:Is it possible to simulate key press events programmatically?

因为这不能解决我的问题。我已经试过了。

编辑2:请不要因为你不知道如何回答这个问题而贬低它。

EN

回答 1

Stack Overflow用户

发布于 2018-06-10 01:04:52

如果您有或可以包含jQuery,下面是最简单的方法

使用jQuery的

代码语言:javascript
复制
jQuery.event.trigger({ type: 'keydown', which: 78 }); // press n key

要在输入字段中模拟按键事件,请使用如下所示

代码语言:javascript
复制
var e = jQuery.Event("keydown");
e.which = 78; // n code value
e.altKey = true; // Alt key pressed
$("#inputBox").trigger(e);

没有jQuery

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50776431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档