gpt4 book ai didi

javascript - 从 Chrome 扩展程序触发 native 键盘事件

转载 作者:行者123 更新时间:2023-11-30 06:39:37 25 4
gpt4 key购买 nike

Facebook 有文本区域,它们可以根据其中的文本大小展开/缩小。在我的 Chrome 扩展程序中,我将文本区域内的文本更改为多行。但是,textareas 扩展/收缩方法仅适用于键盘事件,因此我必须触发一个。

var event = document.createEvent('KeyboardEvent');

event.initEvent('keyup', true, true, window, false, false, false, false, 38, 38);
this.dispatchEvent(event); // this is the textarea

(它对所有的 keyup、keydown、keypress 都这样做)

但这行不通。现在,我知道它为什么不起作用,但不知道如何解决。我已将处理程序附加到该元素以查看发生了什么:

$('[role=dialog] .MessagingComposerForm textarea').on('keyup', function(e) {
console.log(e);
});

当 Chrome 扩展程序触发其 keyup 事件时,我在控制台中看到的对象是一个普通的 Event 对象,除了以下两点:keyCode=0 和 view=null。

当我通过敲击键盘上的某个键触发 keyup 事件时,我可以看到 keyCode=38 和 view=Window。

有没有人知道如何做到这一点?

添加:

我发现了一些东西。如果我 console.log 事件在发送之前它仍然不包含正确的信息。这里:

var event = document.createEvent('KeyboardEvent');

event.initKeyboardEvent('keydown', true, true, window, false, false, false, false, 65, 65);
event.keyCode = 65;
event.which = 65;
event.charCode = 65;

console.log(event);

this.dispatchEvent(event); // this is the textarea

输出这个对象:

KeyboardEvent: {
...
charCode: 0,
keyCode: 0,
view: Window,
which: 0
}

最佳答案

这是 WebKit 中的错误:https://bugs.webkit.org/show_bug.cgi?id=16735

30个字符

关于javascript - 从 Chrome 扩展程序触发 native 键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459874/

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