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

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

[复制链接]

该用户从未签到

4

主题

29

回帖

29

积分

助理工程师

积分
29
发表于 2022-9-4 09:13:42 | 显示全部楼层 | 阅读模式

2个页面,2个脚本。
页面Pa(包含脚本Sa), 页面Pc(包含Sc)。

Sa里面有个批量执行的函数, 会通过 window.open 打开很多个 Pc页面。

Pc里面有个按钮,想通过Sc脚本去点击,但是很少时候会成功。

如果这个时候,我手工去激活那个页面,就是切换到Pc的页面,手工刷新一下页面,就可以执行。

尝试过用 setTimeout等待的方式,Sc的执行是 Document-end。然后setTimeout,5000,还是不行。

帮忙看看是哪里的问题

(function() {
  'use strict';

  if(location.href.indexOf('autorestart') > 0 ){
      setTimeout(()=>{
         var button = $("button.ant-btn-primary span")[0];
          console.info(button);
         $(button).click();
      }, 5000);
  }
})();

该用户从未签到

4

主题

29

回帖

29

积分

助理工程师

积分
29
发表于 2022-9-4 10:45:21 | 显示全部楼层
有人说,
  1. (function() {
  2.   var time = 10000,
  3.       delta = 100,
  4.       tid;

  5.   tid = setInterval(function() {
  6.     if ( document.hidden ) { return; }   
  7.     time -= delta;
  8.     if ( time <= 0 ) {
  9.       clearInterval(tid);
  10.       myFunction(); // time passed - do your work
  11.     }        
  12.   }, delta);
  13. })();
复制代码


这样可以,但是试下来好像不行
回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

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

    发表于 2022-9-4 10:53:41 | 显示全部楼层
    console.info(button);

    这个日志有打印出来么?
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

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

    积分
    6760

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

    发表于 2022-9-4 11:33:30 | 显示全部楼层
    可能是标签页静默状态下启用了懒惰模式
    试试这个问题
    https://bbs.tampermonkey.net.cn/ ... =%E5%90%8E%E5%8F%B0
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-9-4 11:33:35 | 显示全部楼层
    估计是元素加载时机的问题,浏览器对非活动状态的标签页做了限制,可能是setTimeout/setInterval受到了影响,试试这个:https://bbs.tampermonkey.net.cn/thread-2726-1-1.html
    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

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

    积分
    6760

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

    发表于 2022-9-4 11:41:54 | 显示全部楼层
    cxxjackie 发表于 2022-9-4 11:33
    估计是元素加载时机的问题,浏览器对非活动状态的标签页做了限制,可能是setTimeout/setInterval受到了影响 ...

    大佬的库也能解决这个问题吗...
    我没看到用webworker呀知识盲区了
    (我好像懂了,MutationObserve不受限制影响??

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

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

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

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

    MutationObserver应该不受影响吧,我也不太确定,不知道是什么浏览器。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 05:13
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

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

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

    我觉得这单纯的只是setTimeout的问题
    MutationObserver或者setInterval应该都能解决
    页面越多运行速度越慢 有些元素还是异步要通过后端返回数据才加载,光一个setTimeout 5000肯定不靠谱
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    29

    回帖

    29

    积分

    助理工程师

    积分
    29
    发表于 2022-9-4 20:06:08 | 显示全部楼层
    王一之 发表于 2022-9-4 10:53
    console.info(button);

    这个日志有打印出来么?

    还没试过,明天试试看。现在暂时有2个判断。
    1个是setTimeout已经执行了,但是页面没加载完成,所以访问失败
    2是根本没执行

    用console.info可以试试看
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    29

    回帖

    29

    积分

    助理工程师

    积分
    29
    发表于 2022-9-4 20:06:59 | 显示全部楼层
    cxxjackie 发表于 2022-9-4 11:33
    估计是元素加载时机的问题,浏览器对非活动状态的标签页做了限制,可能是setTimeout/setInterval受到了影响 ...

    太强了,我去试试看
    回复

    使用道具 举报

    发表回复

    本版积分规则

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