bigrain 发表于 2023-6-12 19:34:41

如何在脚本中触发键盘事件,主要是左右方向键

有个网站上,里面有个可编辑的 div ,想要通过自动化方式录入标签,暂时想到的办法是通过键盘的方向键来弄,

往里面添加#开头的内容,会触发一个选择的层,然后选择内容。
它的作用是一个 话题标签,普通文本变成话题标签。

实际操作过程中发现,通过键盘的方向键可以触发这个选择。比如说

先输入**#油猴中文网   **

在录入的过程中,那个选择层会一直变化,根据录入内容变化。
比如录入**#油猴**这2个字,就会有个层可以选择了,再多写一些,就有新的内容选择。

为了加快速度,目前的做法是 直接粘贴** #油猴中文网   ** (**通过appendChild添加文字**)

然后光标通过方向键操作,移动到 “文”字后面,然后移到 “网”后面,就能得到我要的效果了。

网上找的代码都不太行,没触发。

代码1失败:
```
function searchContact(text)
{
    var input = document.getElementsByClassName("input input-search");
    input.value = "";
    var evt = document.createEvent("TextEvent");
    evt.initTextEvent ("textInput", true, true, window, text, 0, "en-US");
    input.focus();
    input.dispatchEvent(evt);
}
```

代码2失败:

```
var k_down = function( key )
    {
      var eventObj = document.createEvent("KeyboardEvent");
      eventObj.initEvent("keydown", true, true);
      eventObj.keyCode = key;
      eventObj.key = key;
      eventObj.which = key;
      eventObj.ctrlKeyArg = false;
      document.body.dispatchEvent(eventObj);
    };
    var k_up = function( key )
    {
      var eventObj = document.createEvent("KeyboardEvent");
      eventObj.initEvent("keyup", true, true);
      eventObj.keyCode = key;
      eventObj.key = key;
      eventObj.which = key;
      eventObj.ctrlKeyArg = false;
      document.body.dispatchEvent(eventObj);
    };
```

bigrain 发表于 2023-6-12 19:35:59

这里有个很重要的问题是,这个思路是不是错了,根本方向就不对,也好让我死心了,搞了一个多星期了,没啥进展

李恒道 发表于 2023-6-12 19:51:07

思路来说是没错的
但是不能完全根据网上找的代码...
要去调试网页自身js来判断要传入什么事件,有没有检测,可不可以直接赋值什么的

bigrain 发表于 2023-6-12 20:28:03

李恒道 发表于 2023-6-12 19:51
思路来说是没错的
但是不能完全根据网上找的代码...
要去调试网页自身js来判断要传入什么事件,有没有检测 ...

赋值也比较难,因为那个层是它自己搜索出来的,逻辑也比较复杂。所以想着采用它的方法

李恒道 发表于 2023-6-12 20:44:55

bigrain 发表于 2023-6-12 20:28
赋值也比较难,因为那个层是它自己搜索出来的,逻辑也比较复杂。所以想着采用它的方法 ...

这个取决于具体的调试了

cxxjackie 发表于 2023-6-13 22:31:38

建议有问题最好贴一下测试网址,你这个描述我看着就很费解,至少给一个审查元素的截图吧。
页: [1]
查看完整版本: 如何在脚本中触发键盘事件,主要是左右方向键