如何在JavaScript中模拟按键?

jsv*_*jsv 20 javascript jquery events

我正试图找到一种模拟按键的方法.

例如,当启动功能时,应按下"向下箭头"键,因此网页应略微滚动.

我只对Chrome感兴趣,jQuery或普通JS都适合.(普通的JS会更优选).

这是我尝试过的代码示例之一:

var e = $.Event("keydown", { keyCode: 40}); // 40 = down arrow
$("body").trigger(e);
// When I launch it the console, nothing happens. The page is not scrolled.
// May be I missed some obvious?
Run Code Online (Sandbox Code Playgroud)

我搜索并发现了以下相关问题,但解决方案对我不起作用:


换一种说法

使用AutoHotkey,您可以轻松地制作以下内容:

Down::
Send, {Up}
Run Code Online (Sandbox Code Playgroud)

然后,如果按Down箭头键,它将被触发Up.我只想用JS实现它.

Gav*_*iel 8

正如@rfsbsb指出:用于模拟按键的Jquery脚本按下没有运行键盘快捷键

如果你试图触发一些浏览器或系统范围的键盘快捷方式,那么这是一个死胡同 - 出于安全原因无法完成.如果有可能,你会在互联网上有一些页面(例如)将它们自己添加到你的书签中,甚至不用询问(通过使用Javascript触发CTRL + B快捷键).


Har*_*g10 5

使用这个答案,我设法改变了一些代码,我想我得到了你想要的东西?

这是我的jsfiddle

码:

jQuery(document).ready(function($) {
    $('body').keypress(function(e) {
        if(e.which == '40') 
            $('body').animate({scrollTop: '100px'});
    });
});
jQuery.fn.simulateKeyPress = function(character) {
    jQuery(this).trigger({
        type: 'keypress',
        which: character
    });
};

 setTimeout(function() {
    $('body').simulateKeyPress(40);
 }, 1000);
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

20115 次

最近记录:

10 年 前