您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Robust scroll blocking with multiple fallbacks
当前为
// ==UserScript== // @name Deepseek No Auto-Scroll (Stable) // @description Robust scroll blocking with multiple fallbacks // @match *://*.deepseek.com/* // @version 0.0.1.20250316190240 // @namespace https://greasyfork.org/users/1435046 // ==/UserScript== (function() { 'use strict'; const SCROLL_SELECTORS = [ '[class*="overflow-auto"]', // Class contains "overflow-auto" '[class*="scroll-container"]', // Class contains "scroll-container" 'main > div > div', // Structural fallback 'div[style*="overflow"]' // Inline style overflow ]; let activeContainer = null; const blockScroll = (container) => { if(container.__scrollBlocked) return; // Nuclear option: Remove all scroll behaviors container.style.overflow = 'hidden !important'; container.style.overscrollBehavior = 'none !important'; // Block all scroll methods const scrollMethods = ['scrollTo', 'scrollBy', 'scrollIntoView']; scrollMethods.forEach(method => { container[method] = () => {}; }); // Prevent wheel/touch events container.addEventListener('wheel', e => e.stopPropagation(), true); container.addEventListener('touchmove', e => e.stopPropagation(), true); container.__scrollBlocked = true; }; const findScrollContainer = () => { return SCROLL_SELECTORS.reduce((found, selector) => { return found || document.querySelector(selector); }, null); }; const initScrollBlock = () => { const newContainer = findScrollContainer(); if(newContainer && newContainer !== activeContainer) { activeContainer = newContainer; blockScroll(newContainer); } }; // Run every 500ms + on mutations setInterval(initScrollBlock, 500); new MutationObserver(initScrollBlock).observe(document.body, { childList: true, subtree: true, attributes: true }); })();