带有键代码参数的模拟按键功能 Jquery
Simulated key press function with key code arguments Jquery
我正在构建一个模拟按键事件的函数,并采用了 SO post here.
中的方法
所以我写了这篇文章,其中包含两个关键代码的参数和触发时间。
function keypress_sim(key_code1, key_code2, time){
var key = 0;
var rand_proxy = Math.floor(Math.random() * 2) + 1;
if(rand_proxy == 1){
key = key_code1
} else {
key = key_code2
};
var e = $.Event("keypress",{
keyCode: key
});
var fire = time;
setTimeout($(document).trigger(e), fire);
$("<div></div>").appendTo('body').text(key);
$("<div></div>").appendTo('body').text(fire);
}
keypress_sim(101,105,100,1500);
这不像 a) 如果我把它放在一个间隔中,它仍然只运行一次和 b) 它 returns 一个 "unknown identifier" 错误。
我希望此功能用于 "test run" 我在 Jquery 中编写的一些任务,而不是必须自己完成所有按键操作。
我的错误在哪里?
这个:
setTimeout($(document).trigger(e), fire);
应该是这样的:
setTimeout(function() { $(document).trigger(e) }, fire);
前者是调用一个函数,将return的值作为参数传入setTimeout
,后者是将setTimeout
一个函数作为参数传入
我正在构建一个模拟按键事件的函数,并采用了 SO post here.
中的方法所以我写了这篇文章,其中包含两个关键代码的参数和触发时间。
function keypress_sim(key_code1, key_code2, time){
var key = 0;
var rand_proxy = Math.floor(Math.random() * 2) + 1;
if(rand_proxy == 1){
key = key_code1
} else {
key = key_code2
};
var e = $.Event("keypress",{
keyCode: key
});
var fire = time;
setTimeout($(document).trigger(e), fire);
$("<div></div>").appendTo('body').text(key);
$("<div></div>").appendTo('body').text(fire);
}
keypress_sim(101,105,100,1500);
这不像 a) 如果我把它放在一个间隔中,它仍然只运行一次和 b) 它 returns 一个 "unknown identifier" 错误。 我希望此功能用于 "test run" 我在 Jquery 中编写的一些任务,而不是必须自己完成所有按键操作。
我的错误在哪里?
这个:
setTimeout($(document).trigger(e), fire);
应该是这样的:
setTimeout(function() { $(document).trigger(e) }, fire);
前者是调用一个函数,将return的值作为参数传入setTimeout
,后者是将setTimeout
一个函数作为参数传入