网页视频,每隔五分钟会弹窗让你手动点击确定按钮再继续播放
尝试过使用document.querySelector("#layui-layer1 a.layui-layer-btn0").click();这样可以关闭第一次弹窗,但是第二次弹窗的时候,layui-layer1会变成layui-layer2,以此类推,每隔五分钟id后面会自增1。请教如何写个循环,自己写的循环不起作用。求一个油猴脚本
(function(){
let index = 1;
setInterval(() => {
var bnt = document.querySelector(`#layui-layer${index} a.layui-layer-btn0`)
if (bnt) {
index++;
bnt.click()
}
},20000 );
})()
亲测有效
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()