求助:为Auto Refresh Plus扩展编写点击第二个按钮的JS脚本
解决Auto Refresh Plus自动点击后续第二个按钮的JS脚本
核心思路
目标按钮的特征是带有btn btn-success btn-block类、文本为"Ticket"。我们需要在页面刷新后,捕捉到后续出现的第二个该按钮并点击,以下是两种可行的脚本方案:
方案1:定时轮询(简单易上手)
这种方式适合按钮加载速度较慢的场景,定期检查DOM中是否出现了第二个目标按钮:
function clickSecondTicketBtn() { // 获取所有匹配的按钮 const allTicketBtns = document.querySelectorAll('button.btn.btn-success.btn-block'); // 存在至少2个按钮时,点击第二个(索引从0开始,第二个对应索引1) if (allTicketBtns.length >= 2) { // 避免重复点击不可用按钮 if (!allTicketBtns[1].disabled) { allTicketBtns[1].click(); console.log("已触发第二个Ticket按钮点击"); // 完成点击后停止轮询 clearInterval(checkInterval); } } } // 每500毫秒检查一次,可根据页面实际加载速度调整间隔 const checkInterval = setInterval(clickSecondTicketBtn, 500);
方案2:DOM监听(高效精准)
通过监听DOM变化,在按钮出现时立即触发点击,比轮询更高效:
const btnSelector = 'button.btn.btn-success.btn-block'; function tryClickSecondBtn() { const allBtns = document.querySelectorAll(btnSelector); if (allBtns.length >= 2 && !allBtns[1].disabled) { allBtns[1].click(); console.log("已点击第二个Ticket按钮"); // 完成后停止监听,避免重复操作 observer.disconnect(); } } // 创建DOM变化监听实例 const observer = new MutationObserver(() => tryClickSecondBtn()); // 监听页面所有节点的变化 observer.observe(document.body, { childList: true, subtree: true }); // 页面加载完成后先执行一次检查 tryClickSecondBtn();
使用方法
将上述任意一段代码复制到Auto Refresh Plus扩展的「脚本注入」配置栏中,保存后即可随页面刷新自动执行。
内容的提问来源于stack exchange,提问作者user1023268
相关产品推荐
相关产品推荐

