-
浏览器定时执行会有20ms以内的延迟
-
主要实现定时点击按钮提交功能
❯JavaScript
const time_string = "11:39:00"; // 在这里设置时间
const btn_next = document.querySelector("#guestNextBtn");
const btn_proceed_id = "process-special-issue-guest-editor";
let timer; // 将 timer 定义在全局范围
// 检查proceed 并点击
function checkProceed() {
console.log("开始查找Proceed " + new Date().toISOString());
const element = document.getElementById(btn_proceed_id);
if (element && element.style.display !== 'none') {
clearInterval(timer);
console.log("找到Proceed! " + new Date().toISOString());
element.click();
console.log("Proceed点击完成, done. " + new Date().toISOString());
} else {
console.log("未找到Proceed,继续查找... " + new Date().toISOString());
}
}
btn_next.addEventListener('click', handleClick);
// 按钮被点击事件
function handleClick() {
console.log("Next按钮 clicked... " + new Date().toISOString());
console.log("开始循环查找目标元素... " + new Date().toISOString());
const intervalTime = 50; // 间隔时间(毫秒)
timer = setInterval(checkProceed, intervalTime);
}
// 定义点击按钮的函数
function clickNext() {
console.log("开始查找Next " + new Date().toISOString());
if (btn_next) {
var time = new Date();
console.log("找到Next按钮... " + new Date().toISOString());
btn_next.click();
}
}
// 处理时间
const time_array = time_string.split(":");
const target_time = new Date();
target_time.setHours(time_array[0], 10); // 时
target_time.setMinutes(time_array[1], 10); // 分
target_time.setSeconds(time_array[2], 10); // 秒
target_time.setMilliseconds(0); //ms
console.log("你设置的目标时间为: " + target_time.toLocaleString())
const current_time = new Date();
let timeout = target_time.getTime() - new Date();
// 延时执行点击按钮的函数
setTimeout(clickNext, timeout);