gpt4 book ai didi

jquery - 在 jQuery 中触发 keyup 事件

转载 作者:行者123 更新时间:2023-12-01 04:44:23 25 4
gpt4 key购买 nike

我正在创建的 Chrome 扩展程序注入(inject)的代码存在严重问题。本质上,我需要一个 keyup 事件监听器来拾取某个键,但我似乎无法获取它。

这是我要注入(inject)的代码(请注意,有很多冗余,因为我尝试了很多方法来让它触发事件监听器,一旦找到有效的代码,我就会清理它) .

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 事件设置了事件监听器断点时,代码永远不会中断。

当我在专注于输入字段的同时按下键盘上的一个键并且为 keyup 事件设置了事件监听器断点时,源 jquery.min.js 中出现中断,并且“(e)”突出显示,这是此函数调用的参数:“f=v.handle=function(e)”...请注意,通常只会发生一个断点,但如果我已经调用了我的函数,则会发生 2 个断点,因为我'我在 keyup 事件上生成 console.log。

非常感谢任何帮助,谢谢!

最佳答案

使用$.Event()创建请求的事件,然后使用.trigger()

演示:JSnippet

代码:

$(function() {
var $iElement = $('#logit');
$iElement.keyup(function(e) {
console.log(e.which);
$(this).val(e.which);
});
simulateKey($iElement);
});


function simulateKey($iElement) {
var e = $.Event('keyup');
e.which = 65; // Character 'A'
$iElement.trigger(e);
}

关于jquery - 在 jQuery 中触发 keyup 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com