您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Get rid of annoying video preview auto-play
// ==UserScript== // @name Spankbang: Prevent Video Thumbnails From Auto-Play // @namespace http://tampermonkey.net/ // @version 2025-04-10 // @description Get rid of annoying video preview auto-play // @author Anonymous // @license Unlicense // @match https://spankbang.party/* // @match https://spankbang.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=spankbang.com // @grant none // ==/UserScript== // // Taken from https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver and adapted // // Options for the observer (which mutations to observe) const config = { attributes: true, childList: true, subtree: true }; // Callback function to execute when mutations are observed const callback = (mutationList, observer) => { for (const mutation of mutationList) { if (mutation.type === "childList" && mutation.addedNodes.length > 0) { // Search results page if (mutation.target.tagName == 'DIV' && mutation.target.classList.contains('video-js') && !mutation.previousSibling) { if (mutation.target.parentElement && mutation.target.parentElement.matches(':hover')) { // User hovered for a preview. Doing nothing. } else { // Programmatically triggerered by the site. Disabling. try { mutation.target.setAttribute('style', 'display: none'); jQuery(mutation.target).parents('.is_rotating').removeClass('is_rotating'); // blinking } catch {}; }; }; } else if (mutation.type === "attributes") { // Main page & other areas //if (mutation.target.tagName == 'VIDEO') try {jQuery('[id^=recommended_video],.js-video-item video').hide()} catch {}; if (mutation.target.tagName == 'VIDEO' && mutation.attributeName == 'style' && !mutation.target.getAttribute('style') && !mutation.previousSibling) { if (mutation.target.parentElement && mutation.target.parentElement.matches(':hover')) { // User hovered for a preview. Doing nothing. } else { // Programmatically triggerered by the site. Disabling. try {mutation.target.setAttribute('style', 'display: none')} catch {}; }; }; }; }; }; // Create an observer instance linked to the callback function const observer = new MutationObserver(callback); // Start observing the target node for configured mutations jQuery(".js-media-list,.video-list").each((_, grid) => { //console.log('set observer on', x); observer.observe(grid, config); });