上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

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

[复制链接]

该用户从未签到

4

主题

29

回帖

29

积分

助理工程师

积分
29
发表于 2023-6-12 19:34:41 | 显示全部楼层 | 阅读模式

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

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

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

先输入 #油猴中文网

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

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

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

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

代码1失败:

function searchContact(text)
{
    var input = document.getElementsByClassName("input input-search")[0];
    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);
    };

该用户从未签到

4

主题

29

回帖

29

积分

助理工程师

积分
29
发表于 2023-6-12 19:35:59 | 显示全部楼层
这里有个很重要的问题是,这个思路是不是错了,根本方向就不对,也好让我死心了,搞了一个多星期了,没啥进展
回复

使用道具 举报

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 193 天

    [LV.7]常住居民III

    710

    主题

    5881

    回帖

    6704

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6704

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-6-12 19:51:07 | 显示全部楼层
    思路来说是没错的
    但是不能完全根据网上找的代码...
    要去调试网页自身js来判断要传入什么事件,有没有检测,可不可以直接赋值什么的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    29

    回帖

    29

    积分

    助理工程师

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 193 天

    [LV.7]常住居民III

    710

    主题

    5881

    回帖

    6704

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6704

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

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

    这个取决于具体的调试了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-6-13 22:31:38 | 显示全部楼层
    建议有问题最好贴一下测试网址,你这个描述我看着就很费解,至少给一个审查元素的截图吧。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表