如何使用JS实现未检测到指定Subscribe按钮时自动刷新页面直至元素出现
问题修复方案
核心修改点
- 补全YouTube域名下的按钮不存在时自动刷新逻辑,原代码仅实现了非YouTube站点的自动刷新逻辑
- 优化定时器执行逻辑,减少不必要的性能消耗
- 完全保留原有随机延迟逻辑,避免固定操作间隔触发站点风控检测
完整修复后代码
$(document).ready(function() { if (document.domain === 'www.youtube.com') { if (window.opener && window.opener !== window) { setTimeout(function() { let subscribeBtn = $("#subscribe-button").find('.ytd-subscribe-button-renderer')[0]; if (typeof subscribeBtn !== 'undefined') { subscribeBtn.click(); setTimeout(function() { window.close(); }, getRandomSec222(5)); } else { // 未检测到订阅按钮,自动刷新页面 location.reload(); } }, getRandomSec222(3)); } } else { execBtnTrigger(); function execBtnTrigger() { setTimeout(function() { let targetBtn = $(".single_like_button.btn3-wrap")[0]; if (typeof targetBtn !== 'undefined') { targetBtn.click(); } else { location.reload(); } }, getRandomSec222(9)); } } }); function getRandomSec222(sum) { let sec222 = (Math.random() * 4) + sum; sec222 = parseFloat(sec222.toFixed(3)) * 1000; return sec222; }
使用说明
- 代码依赖jQuery运行,需确保目标页面已加载jQuery库
- 可通过修改
getRandomSec222的入参调整等待时间,入参为最小等待秒数,实际等待时间为入参到入参+4秒的随机值
内容的提问来源于stack exchange,提问作者user16672767
相关产品推荐
相关产品推荐

