【发布时间】:2016-02-02 01:48:39
【问题描述】:
我正在尝试找到一种模拟按键的方法。
例如,当功能启动时,应按下“向下箭头”键,因此网页应略微滚动。
我只对 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?
我搜索并找到了以下相关问题,但解决方案对我不起作用:
- Definitive way to trigger keypress events with jQuery
- Firing a Keyboard Event in JavaScript
- How to trigger event in JavaScript?
- Simulate left and right arrow key event with javascript
- Simulate Keypress With jQuery
- Simulating a Keypress Event from Javascript Console
- Simulate JavaScript Key Events
换句话说
使用 AutoHotkey,您可以轻松地制作如下内容:
Down::
Send, {Up}
那么,如果你按下Down方向键,就会触发Up。我只想用JS来实现。
【问题讨论】:
-
这听起来可能很傻,但是您是否在您的
HTML中导入了jQuery? -
AFAIK 触发 keydown 事件只会使任何 keydown 处理程序进程。您实际上不能让浏览器滚动,因为滚动不是由 JavaScript 的 keydown 事件完成的。为什么不能使用
scrollTop操作直接滚动文档? -
我同意@Amadan 的观点,这看起来很愚蠢,是一个经典的 X/Y 问题。您正在尝试触发箭头键上的按键,只是为了向下滚动页面,而您只需使用
$(window).scrollTop(100)等即可。 -
“网络文件管理器”是什么意思,“扩展”是什么意思?另外,请阅读XY problems 以及为什么它们是一个坏主意。如果您想询问有关扩展 Web 文件管理器(无论是什么)的问题,请询问。
-
它不会直接回答您的问题,但它可能会为您寻找解决方案带来一些启发stackoverflow.com/a/13821309/1949694
标签: javascript jquery events