【发布时间】:2015-08-28 16:29:14
【问题描述】:
我正在创建的 Chrome 扩展程序注入的代码存在严重问题。本质上,我需要一个 keyup 事件侦听器来获取某个键,但我似乎无法得到它。
这是我要注入的代码(请注意,有很多冗余,因为我正在尝试大量的东西来让它触发事件侦听器,一旦找到有效的代码,我将清理它) .
function simulateKey(iElement) {
$( iElement ).focus();
var e = jQuery.Event("keyup");
e.which = 37;
e.keyCode = 37;
e.charCode = 0;
$( iElement ).keyup(function () {
console.log("keyup element");
});
$( iElement ).trigger(e);
var f = jQuery.Event("keyup");
f.which = 70;
e.keyCode = 70;
f.ctrlKey = true;
f.shiftKey = true;
$( iElement ).trigger(f);
$ ( document ).trigger(f);
$ ( window ).trigger(f);
}
当这个函数被调用时,输入元素变成焦点并且“keyup element”被打印到控制台。但是当这个函数被调用并且我为 keyup 事件设置了一个事件监听器断点时,代码永远不会中断。
当我在输入字段内聚焦时简单地按下键盘上的一个键并且我为按键事件设置了一个事件侦听器断点,源 jquery.min.js 中有一个中断并且“(e)”被突出显示,这是此函数调用的参数:“f=v.handle=function(e)”... 请注意,正常情况下只会发生一个断点,但如果我已经调用了我的函数,那么会发生 2 个断点,因为我' m 在 keyup 事件上生成 console.log。
非常感谢任何帮助,谢谢!
【问题讨论】:
标签: jquery events triggers listener