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

求助在控制台向目标文本框输入内容正常,但是放在脚本里没反应

[复制链接]
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 451 天

    [LV.9]以坛为家II

    1

    主题

    3

    回帖

    196

    积分

    中级工程师

    积分
    196
    发表于 2023-8-29 09:40:11 | 显示全部楼层 | 阅读模式
    悬赏10油猫币已解决

    本帖最后由 kfab 于 2023-8-29 11:09 编辑

    本帖最后由 kfab 于 2023-8-29 09:54 编辑

    https://github.com/hectorqin/reader

    上有个类似手机阅读3.0的项目,布置服务器,网页访问服务器阅读抓取小说。

    在阅读页面点击文本会弹出对话框是否添加入过滤规则,但是由于常常不想替换时点击了页面,就会弹出对话框。

    好在可以在设置里设置不弹出,但是这样的话在需要替换的时候,就要进入设置页面,滑动到最底端才可以点击过滤,然后再在弹出的界面里再点击下新增,才可以看到需要的添加过滤的界面。

    这样就太繁琐了,于是就想通过脚本直接调出这个添加过滤的界面,通过一些努力成功调出了该界面,接下来需要的操作是:

    1.在该页面的第一个文框输出选中时自动复制的文本内容

    2.在该页面的第二个文本框输出选中时自动复制的文本内容

    3.激活该页面的第三个文本框

    4.鼠标移动到确定按钮上,但不点击

    结果第一步就遇到了问题,顺利找到第一个文本框
    div.el-form-item:nth-of-type(1) > .el-form-itemcontent > .el-input > .el-inputinner

    之后,在控制台测试在该文本框输出内容是没问题的,如下图
    Snipaste_2023-08-28_16-52-19.jpg

    但是放到脚本里

    document.querySelector("div.el-form-item:nth-of-type(1) > .el-form-itemcontent > .el-input > .el-inputinner").value = "测试";

    执行后,发现该界面的第一个文本框里仍然显示默认的“文本替换”,而不显示输入的“测试”,如下图

    Snipaste_2023-08-28_16-45-05.jpg

    后来测试发现,第一次执行脚本不输入,但是关闭该界面后,执行第二次脚本就又显示了,如图
    Snipaste_2023-08-29_09-35-04.jpg

    这个好奇怪啊,请哥哥们帮忙看看是怎么回事。

    后来我添加了另一个功能,ALT+F,进入搜索界面,这时脚本却可以正常向该界面的文本框输入文本,但是前面的ALT+R进入规则替换(二级)界面却需要按ALT+R两次,执行两次才可以输入文本。问题在哪?

    另: 怎么使用document.execCommand('paste'); 或者其他方法,在文本框输入已经复制好的内容?

    修改后的脚本

    // ==UserScript==
    // @name         reader
    // @namespace    https://bbs.tampermonkey.net.cn/
    // @version      0.1.0
    // @description  reader页面alt+r 把选中的文本添加进【新增替换规则】界面
    // @description  reader页面alt+f 把选中的文本添加进【搜索】界面
    // @author       五味子
    // @include      http://192.168.1.2:8080/#/reader
    // ==/UserScript==
    
    function replace() {
        'use strict';
        var r = window.event.keyCode
        var f = window.event.keyCode
    
        if (r == 82 && event.altKey) //按下 r键+alt键
        {
            //复制选中内容
            document.execCommand('Copy');
            //点击【新增规则】
            document.querySelector("div.el-dialog__wrapper:nth-of-type(5) > .el-dialog > .el-dialog__footer > .dialog-footer > div > button.el-button--medium.el-button--primary.float-left.el-button:nth-of-type(3) > span").click()
            //在【名称】文本框输入
            document.querySelector("div.el-form-item:nth-of-type(1) > .el-form-item__content > .el-input > .el-input__inner").value = "测试";
        }
    
        if (f == 70 && event.altKey) //按下 f键+alt键
        {
            //复制选中内容
            document.execCommand('Copy');
            //点击【搜索】
            document.querySelector("div.float-btn:nth-of-type(2) > .el-icon-search").click()
            //在【名称】文本框输入
            document.querySelector(".el-input--prefix.el-input--mini.el-input.search-input > .el-input__inner").value = "测试";
        }
    }
    
    document.onkeydown = replace; //当按下按键时,onkeydown调用
    document.onkeydown = search; //当按下按键时,onkeydown调用
    

    最佳答案

    查看完整内容

    没测试网站不好排查问题 但是根据你的描述来看很可能是弹窗还没渲染直接开始搜寻了 控制台没有报错吗 加个settimeout加大延迟试试
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

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

    积分
    6758

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

    发表于 2023-8-29 09:40:12 | 显示全部楼层
    没测试网站不好排查问题

    但是根据你的描述来看很可能是弹窗还没渲染直接开始搜寻了

    控制台没有报错吗

    加个settimeout加大延迟试试
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 451 天

    [LV.9]以坛为家II

    1

    主题

    3

    回帖

    196

    积分

    中级工程师

    积分
    196
    发表于 2023-8-29 12:41:22 | 显示全部楼层
    李恒道 发表于 2023-8-29 09:40
    没测试网站不好排查问题

    但是根据你的描述来看很可能是弹窗还没渲染直接开始搜寻了

    试了,直接不弹出界面了,应该是我settimeout写的不对。
    按两次ATL+R也可以接受,我已经放弃治疗了

    哥哥能说下怎么在文本框输出复制好的内容吗
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

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

    积分
    6758

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

    发表于 2023-8-29 18:45:59 | 显示全部楼层
    kfab 发表于 2023-8-29 12:41
    试了,直接不弹出界面了,应该是我settimeout写的不对。
    按两次ATL+R也可以接受,我已经放弃治疗了

    click之后再settimeout试试

    提取clip目前好像没什么特别好的办法....

    @王一之 不知道知不知道
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情

    12 小时前
  • 签到天数: 757 天

    [LV.10]以坛为家III

    30

    主题

    336

    回帖

    1168

    积分

    荣誉开发者

    积分
    1168

    油中2周年生态建设者油中3周年荣誉开发者

    发表于 2023-8-29 19:15:48 | 显示全部楼层
    kfab 发表于 2023-8-29 12:41
    试了,直接不弹出界面了,应该是我settimeout写的不对。
    按两次ATL+R也可以接受,我已经放弃治疗了

    https://blog.csdn.net/qq_36658051/article/details/107908422
    看看这个
    回复

    使用道具 举报

    发表回复

    本版积分规则

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