![]() |
好帅的签字笔 · 连续调用window.open() ...· 8 月前 · |
![]() |
活泼的石榴 · shell中脚本参数传递的两种方式_sh文件 ...· 1 年前 · |
![]() |
坚韧的板栗 · 解决 anaconda 报错 ...· 2 年前 · |
![]() |
风流倜傥的金针菇 · java实现SHA256、SHA512、MD ...· 2 年前 · |
我在试着找到一种模拟按键的方法。
例如,当功能启动时,应该按下“向下箭头”键,因此应该稍微滚动网页。
我只对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?
我搜索并找到了以下相关问题,但解决方案对我不起作用:
换句话说就是
使用AutoHotkey,您可以轻松地完成以下操作:
Down::
Send, {Up}
然后,如果您按
Down
箭头键,它将被触发
Up
。我只想用JS来实现它。
发布于 2016-02-07 03:59:56
正如@rfsbsb指出的那样: Jquery script for simulated key press down not running keyboard shortcut
如果你试图触发某个浏览器或系统范围的键盘快捷键,那么这是个死胡同--出于安全原因,这是不可能的。如果可能的话,你会在互联网上到处都有页面,这些页面甚至不需要询问就会自动添加到你的书签中(通过使用Javascript触发CTRL+B快捷方式)。
发布于 2016-02-04 18:03:04
使用 this answer ,我设法更改了一点代码,我想我得到了你想要的东西?
代码:
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);
发布于 2016-02-11 04:14:27
下面是一个从@Haring10的示例开始的示例:
https://jsfiddle.net/po33vfb4/4/
$('body').keydown(function(e) {
e.preventDefault();
e.stopImmediatePropagation();