您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
自动关闭芒果TV视频弹幕,支持切换集数后自动关闭弹幕,检测到网络错误时自动关闭弹幕,用户可选择启用或禁用功能
当前为
// ==UserScript== // @name 芒果TV网页版自动关闭弹幕 // @namespace http://tampermonkey.net/ // @version 1.15.1 // @description 自动关闭芒果TV视频弹幕,支持切换集数后自动关闭弹幕,检测到网络错误时自动关闭弹幕,用户可选择启用或禁用功能 // @author mankaki // @match *://www.mgtv.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=mgtv.com // @grant none // @license GPL-3.0 // ==/UserScript== (function() { 'use strict'; let autoCloseDanmu = JSON.parse(localStorage.getItem('autoCloseDanmu')) ?? true; let networkErrorFlag = false; // 创建开关按钮 function createToggleButton() { const button = document.createElement('div'); button.style.position = 'fixed'; button.style.bottom = '10px'; button.style.right = '10px'; button.style.zIndex = '9999'; button.style.display = 'flex'; button.style.alignItems = 'center'; button.style.justifyContent = 'center'; button.style.width = 'auto'; button.style.height = '40px'; button.style.borderRadius = '40px 0 0 40px'; button.style.backgroundColor = '#fff'; button.style.boxShadow = '-1px 4px 8px rgba(0, 0, 0, .06)'; button.style.color = 'rgb(51, 51, 51)'; button.style.cursor = 'pointer'; button.style.right = '-6px'; button.style.whiteSpace = 'nowrap'; button.style.padding = '0 10px'; button.style.transition = 'background-color 0.3s, color 0.3s'; button.innerText = `自动关闭弹幕: ${autoCloseDanmu ? '是' : '否'}`; button.addEventListener('click', () => { autoCloseDanmu = !autoCloseDanmu; localStorage.setItem('autoCloseDanmu', JSON.stringify(autoCloseDanmu)); button.innerText = `自动关闭弹幕: ${autoCloseDanmu ? '是' : '否'}`; }); button.addEventListener('mouseover', () => { button.style.backgroundColor = '#ff5f00'; button.style.color = '#fff'; }); button.addEventListener('mouseout', () => { button.style.backgroundColor = '#fff'; button.style.color = 'rgb(51, 51, 51)'; }); document.body.appendChild(button); } createToggleButton(); // 关闭弹幕的函数 function closeDanmu() { if (!autoCloseDanmu) return; // 检查是否开启自动关闭弹幕 const danmuButtonOn = document.querySelector("._danmuSwitcher_1qow5_208._on_1qow5_238"); const danmuButtonOff = document.querySelector("._danmuSwitcher_1qow5_208"); if (danmuButtonOn) { danmuButtonOn.click(); console.log("弹幕已关闭"); } else if (danmuButtonOff) { console.log("弹幕已关闭,无需操作"); } else { console.log("未找到弹幕开关按钮"); } } // 页面加载后自动尝试关闭弹幕 window.addEventListener('load', closeDanmu); // 拦截 console.error 以监测网络错误 const originalConsoleError = console.error; console.error = function(...args) { originalConsoleError.apply(console, args); if (args.some(arg => arg && typeof arg === 'object' && arg.message === 'Network Error' && arg.code === 'ERR_NETWORK')) { networkErrorFlag = true; console.log("检测到网络错误,将在视频点击时自动关闭弹幕"); } }; // 监听视频播放器的点击事件 const playerElement = document.querySelector(".mango-player.p-MacIntel.player-s"); if (playerElement) { playerElement.addEventListener('click', () => { if (autoCloseDanmu && networkErrorFlag) { console.log("检测到视频点击事件和网络错误,3秒后自动关闭弹幕"); setTimeout(() => { closeDanmu(); networkErrorFlag = false; // 重置网络错误标志 }, 3000); // 延时3秒执行关闭弹幕 } }); } // 检测URL变化以自动关闭弹幕 let lastUrl = window.location.href; document.addEventListener('click', () => { setTimeout(() => { const currentUrl = window.location.href; if (currentUrl !== lastUrl) { lastUrl = currentUrl; closeDanmu(); } }, 2000); }); })();