// ==UserScript== // @name 抖音网页版直播防暂停 // @namespace http://tampermonkey.net/ // @version 1.0.0 // @description 自动处理抖音网页版长时间无操作导致的暂停弹窗,支持自动点击“继续播放” // @author chase92 // @match *://live.douyin.com/* // @match *://www.douyin.com/* // @license MIT // @grant none // @downloadURL https://update.greasyfork.icu/scripts/573532/%E6%8A%96%E9%9F%B3%E7%BD%91%E9%A1%B5%E7%89%88%E7%9B%B4%E6%92%AD%E9%98%B2%E6%9A%82%E5%81%9C.user.js // @updateURL https://update.greasyfork.icu/scripts/573532/%E6%8A%96%E9%9F%B3%E7%BD%91%E9%A1%B5%E7%89%88%E7%9B%B4%E6%92%AD%E9%98%B2%E6%9A%82%E5%81%9C.meta.js // ==/UserScript== (function() { 'use strict'; // 1. 主动防御:每 60 秒伪造鼠标移动和页面微小滚动,重置计时器 setInterval(() => { // 模拟鼠标在坐标 (100, 100) 处移动 document.dispatchEvent(new MouseEvent('mousemove', { bubbles: true, cancelable: true, clientX: 100, clientY: 100 })); // 派发一个无害的 scroll 事件(不需要真的滚动页面,只要抛出事件即可) window.dispatchEvent(new Event('scroll', { bubbles: true, cancelable: true })); }, 60000); // 2. 被动兜底:如果主动防御被抖音的 isTrusted 检测拦截,依然保留自动点击逻辑(每 3 秒巡逻) setInterval(() => { let buttons = document.evaluate("//*[text()='继续播放']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (let i = 0; i < buttons.snapshotLength; i++) { let btn = buttons.snapshotItem(i); if (btn.offsetWidth > 0 && btn.offsetHeight > 0) { btn.click(); console.log('触发兜底机制:已拦截“节能”弹窗。'); } } }, 3000); })();