请教一个关于弹窗自动点击确定按钮继续播放的油猴脚本写法

网页视频,每隔五分钟会弹窗让你手动点击确定按钮再继续播放
尝试过使用document.querySelector("#layui-layer1 a.layui-layer-btn0").click();这样可以关闭第一次弹窗,但是第二次弹窗的时候,layui-layer1会变成layui-layer2,以此类推,每隔五分钟id后面会自增1。请教如何写个循环,自己写的循环不起作用。求一个油猴脚本

img

img


img

(function(){
 let index = 1;
 setInterval(() => {
   var bnt = document.querySelector(`#layui-layer${index} a.layui-layer-btn0`)
        if (bnt) {
          index++;
          bnt.click()
        }
      },20000 );
})()

亲测有效

img

5000时间可以修改

var temp= setTimeout( function() {
var LoLayuilayer=document.querySelector(".layui-layer .layui-layer-dialog .layer-anim ");
if(LoLayuilayer){
  LoLayuilayer.click();
}
setTimeout(temp, 5000);
}, 5000);
temp();

这是因为你5分钟没有操作,所以有的这个弹窗,你写个定时器,四分钟执行一次视频的暂停播放不就行了

有几个思路
第一:清除定时器
第二:模拟事件,比如鼠标移动产生的mousemove……
第三:清除对话框,如果只有一个对话框,定时执行(每100ms检查一次)检查,发现有对话框了就清除,对话框的判断不一定通过ID,可以通过css来检查
第四:修改产生对话框的函数,使其不产生(如果代码未加密的话应该容易找到)

这用循环是不是要炸啊,事件监听或者定时器吧

如果你能拿到视频的对象,监听视频停止播放了控制重新播放,class为layui- layer- dialog display为none

你这不是循环,是要用定时器吧

let index =0
setInterval(()=>{
  index++
  document.querySelector(`#layui-layer${index} a.layui-layer-btn0`).click()
},1000*60*5)

换种思路,id会变,但是class不会变

document.querySelector(".layui-layer.layui-layer-dialog.layui-anim a.layui-layer-btn0").click()