首页 > 解决方案 > 使用 javascript 和 Tampermonkey 在 Input 中模拟 Enter 键

问题描述

我正在尝试为 Tampermonkey 编写一个脚本,该脚本将在文本输入中插入下拉菜单中选定项目的文本并模拟按下 Enter 键,以便触发分配给该输入的事件。

这就是我定义我的测试的方式input

<input type="text" placeholder="Topics" id="TText" onkeydown="checkEnter(event)">

这是在按下Enter时将input文本附加到段落sTopics的函数,用于测试目的

function checkEnter(event) {
  var sTopics;
  var eKey = event.key;
  if (eKey == "Enter") {
    sTopics = document.getElementById("selTopics");
    sTopics.innerHTML += document.getElementById("TText").value.concat("<br>");
    document.getElementById("TText").value = "";
  }
}

这是从下拉菜单中选择项目时触发的功能,

function setTopic(newTopic) {
  const ke = new KeyboardEvent('keydown', {
    bubbles: true, cancelable: true, keyCode: 13
  });
  document.getElementById("TText").value = newTopic;
  document.getElementById("myDropdown").classList.toggle("show");
  document.getElementById("TText").dispatchEvent(ke);
}

我从这里得到了KeyboardEvent解决方案,但是,当我从 DD 中选择一个项目时,所发生的只是文本被添加到 中,Enter键未被“检测到”(文本没有被添加到段落和输入文本不会被清除。input

知道我做错了什么,我该如何解决?

提前谢谢了!:)

标签: javascripttampermonkey

解决方案


推荐阅读