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

请问大佬们平时用什么方法来触发查找元素

[复制链接]
  • TA的每日心情
    无聊
    2023-9-5 15:56
  • 签到天数: 54 天

    [LV.5]常住居民I

    14

    主题

    74

    回帖

    111

    积分

    中级工程师

    积分
    111
    发表于 2022-7-22 22:59:00 | 显示全部楼层 | 阅读模式

    如题,因为元素不一定是刷新页面就出来,有可能是点击事件,
    我之前都是用XHR的返回内容劫持这个代码来反复查找元素,但是这样降低性能听严重。

  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 194 天

    [LV.7]常住居民III

    720

    主题

    6071

    回帖

    6850

    积分

    管理员

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

    积分
    6850

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

    发表于 2022-7-23 02:11:22 | 显示全部楼层
    提这个我可就不困了
    连夜爬起来开机答这个问题
    1.现成库
    https://bbs.tampermonkey.net.cn/thread-2726-1-1.html
    cxxjackie大佬所写,质量有保证
    首选方案强烈推荐,但是建议在使用过程中高呼cxxjackie牛逼!
    2.setinterval/settimeout
    定时循环检测元素
    https://www.runoob.com/jsref/met-win-setinterval.html
    3.addeventlistener
    let ops=document.querySelector('#arc_toolbar_report .ops');
    //插入三连之后好像会重新生成,不添加就不会重新生成,暂时没弄清什么情况,先这样处理了.
    //主要作用是监听ops的DOMNodeInserted事件,等它修改完成之后再插入我们的三连按钮,另外注意run-at是document-end,要等待ops生成之后再监听,不然query返回null会报错
    //这个事件会多次调用,但是我们insertBefore插入如果元素存在,只是修改而不会新增
    ops.addEventListener("DOMNodeInserted", function(event) {
        let share=document.querySelector('.share');
        share.parentElement.insertBefore(triple,share);
    });
    这个存在阻塞问题,不推荐
    4.mutationobserve api
    无阻塞问题,推荐

    [油猴脚本开发指南]MutationObserver的使用
    https://bbs.tampermonkey.net.cn/thread-988-1-1.html
    [油猴脚本开发指南]Mutation Event性能影响简易测试
    https://bbs.tampermonkey.net.cn/thread-1006-1-1.html
    [油猴脚本开发指南]MutationObserver简单详解
    https://bbs.tampermonkey.net.cn/thread-1007-1-1.html
    [油猴脚本开发指南]MutationObserver简易例子
    https://bbs.tampermonkey.net.cn/thread-1008-1-1.html
    [油猴脚本开发指南]MutationObserver实战
    https://bbs.tampermonkey.net.cn/thread-1017-1-1.html

    备注:
    没事多翻开发指南
    有时间绝逼适合反反复复看
    已有1人评分好评 油猫币 理由
    王一之 + 1 + 4 nb

    查看全部评分 总评分:好评 +1  油猫币 +4 

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    无聊
    2023-9-5 15:56
  • 签到天数: 54 天

    [LV.5]常住居民I

    14

    主题

    74

    回帖

    111

    积分

    中级工程师

    积分
    111
    发表于 2022-7-23 06:32:18 | 显示全部楼层
    李恒道 发表于 2022-7-23 02:11
    提这个我可就不困了
    连夜爬起来开机答这个问题
    1.现成库

    非常感谢大佬,一大早上就送那么大的礼物,这就回去好好看看
    回复

    使用道具 举报

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

    [LV.10]以坛为家III

    30

    主题

    732

    回帖

    7377

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    积分
    7377

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

    发表于 2022-7-23 08:48:05 | 显示全部楼层
    cxxjackie牛逼!
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    回帖

    4

    积分

    助理工程师

    积分
    4

    油中2周年新人报道

    发表于 2022-7-24 21:49:54 | 显示全部楼层
    李恒道 发表于 2022-7-23 02:11
    提这个我可就不困了
    连夜爬起来开机答这个问题
    1.现成库

    ggnb!
    ggnb!
    ggnb!
    回复

    使用道具 举报

    发表回复

    本版积分规则

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