如何在Tampermonkey中实现无id属性按钮的自动点击
错误原因排查
- 你当前使用的
document.querySelector()返回的是单个DOM元素而非节点集合,额外添加[0]索引会触发类型错误,导致代码直接终止运行 - 你编写的选择器
input[value=""]仅匹配value属性为空的input输入框,和你提供的HTML结构里的目标元素完全不匹配,自然找不到可点击的目标
各目标按钮的点击代码
你提供的HTML里包含三个可点击的控制按钮,按需选择对应代码即可:
- 点击下一集跳转按钮
document.querySelector('.community-next-episode a').click();
- 点击画中画控制按钮
document.querySelector('button.vjs-picture-in-picture-control').click();
- 点击字幕控制按钮
document.querySelector('button.vjs-subs-caps-button.vjs-menu-button-popup').click();
油猴脚本适配优化
绝大多数视频站点的控制按钮都是异步渲染生成的,脚本默认在页面加载初期执行时很可能元素还没渲染完成,导致找不到目标,可使用以下两种方案适配:
- 延迟执行
// 页面所有资源加载完成后延迟1秒执行点击逻辑 window.addEventListener('load', () => { setTimeout(() => { // 替换为你需要使用的目标按钮点击代码 document.querySelector('.community-next-episode a').click(); }, 1000); });
- 轮询检测元素存在后执行
// 每300毫秒检测一次目标元素是否存在,存在则执行点击并停止轮询 const checkTimer = setInterval(() => { const targetBtn = document.querySelector('.community-next-episode a'); if (targetBtn) { clearInterval(checkTimer); targetBtn.click(); } }, 300);
内容的提问来源于stack exchange,提问作者Random TV
相关产品推荐
相关产品推荐

