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

2个脚本,A脚本打开页面B,页面B里面有定时代码,但是不y...

[复制链接]

该用户从未签到

4

主题

29

回帖

29

积分

助理工程师

积分
29
发表于 2022-9-4 20:08:25 | 显示全部楼层
李恒道 发表于 2022-9-4 11:41
大佬的库也能解决这个问题吗...
我没看到用webworker呀知识盲区了
(我好像懂了,MutationObserve ...

MutationObserve是个啥,得去学习下新姿势了
回复
订阅

使用道具 举报

该用户从未签到

4

主题

29

回帖

29

积分

助理工程师

积分
29
发表于 2022-9-4 20:08:58 | 显示全部楼层
steven026 发表于 2022-9-4 12:04
我觉得这单纯的只是setTimeout的问题
MutationObserver或者setInterval应该都能解决
页面越多运行速度越 ...

setInterval 去判断啥呢?判断页面是否加载成功还是?
回复

使用道具 举报

  • TA的每日心情
    慵懒
    17 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-9-4 20:21:55 | 显示全部楼层
    bigrain 发表于 2022-9-4 20:08
    setInterval 去判断啥呢?判断页面是否加载成功还是?

    判断元素是否加载
    1. (function () {
    2.     'use strict';

    3.     if (location.href.indexOf('autorestart') > 0) {
    4.         let timer = setInterval(() => {
    5.             let button = $("button.ant-btn-primary")
    6.             console.info(button);
    7.             if (button.length > 0) {
    8.                 clearInterval(timer)
    9.                 button.click();
    10.             }
    11.         }, 1000);
    12.     }
    13. })();
    复制代码
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5960

    回帖

    6759

    积分

    管理员

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

    积分
    6759

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

    发表于 2022-9-4 20:22:15 | 显示全部楼层
    bigrain 发表于 2022-9-4 20:08
    MutationObserve是个啥,得去学习下新姿势了

    https://bbs.tampermonkey.net.cn/thread-184-1-1.html
    这里有对应的教程
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

    该用户从未签到

    4

    主题

    29

    回帖

    29

    积分

    助理工程师

    积分
    29
    发表于 2022-9-4 20:25:28 | 显示全部楼层
    1.    if(location.href.indexOf('autorestart') == 0 )
    2.     return;
    3.     //console.info('表示我来过了,那就说明是加载的问题了');
    4.     const elmGetter = new ElementGetter();
    5.     elmGetter.each('.ant-btn-primary', document, button => {
    6.         //console.info(button);
    7.         const span = button.querySelector('span');
    8.         //console.info(span);
    9.         if (span) {
    10.             setTimeout(()=>{
    11.                 (function() {
    12.                     span.click();
    13.                 })();
    14.             }, 1000);
    15.         }
    16.     });
    复制代码


    改成这样了,暂时看起来是可以了,等会再测试一下
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-9-4 20:37:30 | 显示全部楼层
    本帖最后由 cxxjackie 于 2022-9-4 23:34 编辑
    bigrain 发表于 2022-9-4 20:25
    改成这样了,暂时看起来是可以了,等会再测试一下

    可以这样,不用再加setTimeout:
    1. elmGetter.each('.ant-btn-primary span', document, span => {
    2.     span.click();
    3. });
    复制代码
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    29

    回帖

    29

    积分

    助理工程师

    积分
    29
    发表于 2022-9-4 22:34:23 | 显示全部楼层
    以前用过 waitforelement.js   意思是差不多的不,只是更强一些
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-9-4 23:10:55 | 显示全部楼层
    bigrain 发表于 2022-9-4 22:34
    以前用过 waitforelement.js   意思是差不多的不,只是更强一些

    是的,参考这篇的讨论:https://bbs.tampermonkey.net.cn/thread-2729-1-1.html
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    29

    回帖

    29

    积分

    助理工程师

    积分
    29
    发表于 2022-9-4 23:31:45 | 显示全部楼层
    cxxjackie 发表于 2022-9-4 20:37
    可以这样,不用再加setTimeout:

    精炼多了,明天试试
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    29

    回帖

    29

    积分

    助理工程师

    积分
    29
    发表于 2022-9-6 20:55:53 | 显示全部楼层
    waitforelement有个缺憾,页面上有2个按钮,a按钮弹出div层,里面有个b按钮,class一样,发现b按钮不会点击。

    但是用 elmGetter 发现是可以的,
    回复

    使用道具 举报

    发表回复

    本版积分规则

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