Chrome 扩展如何在任何选定的文本字段中输入文本

Chrome extension how to enter text in any selected text field

我正在制作一个 Chrome 扩展程序,当您按下 Ctrl+Shift+U 时它会生成昵称,如果选择了一个,它应该会自动在选定的文本字段中输入生成的名称。我的问题是有很多类型的文本字段,最基本的是输入。这是我目前生成昵称的函数,它适用于输入字段和文本区域字段,但除此之外别无他用。

//Nickname gets generated here
//...

var inp = document.querySelectorAll("input");
var txt = document.querySelectorAll("textarea");
    
for (var i=0;i<inp.length;i++) {
    if (inp[i] == document.activeElement) {
        inp[i].value = nick;
    }
}
    
for (var i=0;i<txt.length;i++) {
    console.log(txt[i]);
    if (txt[i] == document.activeElement) {
        txt[i].innerHTML = nick;
    }
}

基本上,我认为我需要的是某种功能,它可以像用户输入名称一样工作,而无需直接更改字段的值。

感谢 wOxxOm 的回答,稍微修改一下,我就可以使用了。这是我的最终代码:

//Nickname gets generated here
//...

const keyboardEventInit = {bubbles:false, cancelable:false, composed:false, key:'', code:'', location:0};
const element = document.activeElement;

if (element) {

    element.dispatchEvent(new KeyboardEvent("keydown", keyboardEventInit));
    element.value = nick;
    element.dispatchEvent(new KeyboardEvent("keyup", keyboardEventInit));
    element.dispatchEvent(new Event('change', {bubbles: true}));

}