琦玉 发表于 2022-7-22 22:59:00

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

如题,因为元素不一定是刷新页面就出来,有可能是点击事件,
我之前都是用(https://bbs.tampermonkey.net.cn/thread-839-1-1.html)这个代码来反复查找元素,但是这样降低性能听严重。

李恒道 发表于 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

备注:
没事多翻开发指南
有时间绝逼适合反反复复看

琦玉 发表于 2022-7-23 06:32:18

李恒道 发表于 2022-7-23 02:11
提这个我可就不困了
连夜爬起来开机答这个问题
1.现成库


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

Ne-21 发表于 2022-7-23 08:48:05

cxxjackie牛逼!

seerukpkmkk 发表于 2022-7-24 21:49:54

李恒道 发表于 2022-7-23 02:11
提这个我可就不困了
连夜爬起来开机答这个问题
1.现成库


ggnb!
ggnb!
ggnb!
页: [1]
查看完整版本: 请问大佬们平时用什么方法来触发查找元素