2个脚本,A脚本打开页面B,页面B里面有定时代码,但是不y...
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");
console.info(button);
$(button).click();
}, 5000);
}
})();
```
有人说,(function() {
var time = 10000,
delta = 100,
tid;
tid = setInterval(function() {
if ( document.hidden ) { return; }
time -= delta;
if ( time <= 0 ) {
clearInterval(tid);
myFunction(); // time passed - do your work
}
}, delta);
})();
这样可以,但是试下来好像不行 console.info(button);
这个日志有打印出来么? 可能是标签页静默状态下启用了懒惰模式
试试这个问题
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=1987&highlight=%E5%90%8E%E5%8F%B0 估计是元素加载时机的问题,浏览器对非活动状态的标签页做了限制,可能是setTimeout/setInterval受到了影响,试试这个:https://bbs.tampermonkey.net.cn/thread-2726-1-1.html cxxjackie 发表于 2022-9-4 11:33
估计是元素加载时机的问题,浏览器对非活动状态的标签页做了限制,可能是setTimeout/setInterval受到了影响 ...
大佬的库也能解决这个问题吗...
我没看到用webworker呀{:4_98:}知识盲区了
(我好像懂了,MutationObserve不受限制影响??
李恒道 发表于 2022-9-4 11:41
大佬的库也能解决这个问题吗...
我没看到用webworker呀知识盲区了
(我好像懂了,MutationObserve ...
MutationObserver应该不受影响吧,我也不太确定,不知道是什么浏览器。 李恒道 发表于 2022-9-4 11:41
大佬的库也能解决这个问题吗...
我没看到用webworker呀知识盲区了
(我好像懂了,MutationObserve ...
我觉得这单纯的只是setTimeout的问题
MutationObserver或者setInterval应该都能解决
页面越多运行速度越慢 有些元素还是异步要通过后端返回数据才加载,光一个setTimeout 5000肯定不靠谱 王一之 发表于 2022-9-4 10:53
console.info(button);
这个日志有打印出来么?
还没试过,明天试试看。现在暂时有2个判断。
1个是setTimeout已经执行了,但是页面没加载完成,所以访问失败
2是根本没执行
用console.info可以试试看 cxxjackie 发表于 2022-9-4 11:33
估计是元素加载时机的问题,浏览器对非活动状态的标签页做了限制,可能是setTimeout/setInterval受到了影响 ...
太强了,我去试试看