// ==UserScript== // @name 小红书网页屏蔽视频 // @namespace https://bbs.tampermonkey.net.cn/ // @version 0.3.0 // @description 全面屏蔽小红书视频内容,包括自动筛选图片 // @author You // @match http*://*.xiaohongshu.com/* // @run-at document-start // @grant GM_addStyle // @grant unsafeWindow // ==/UserScript== (function() { 'use strict'; // 添加隐藏视频的样式 GM_addStyle(` /* 隐藏视频元素 */ section.note-item:has(video), section.note-item:has(span.play-icon), section.note-item:has([data-video-id]), section.note-item:has(amp-video), section.note-item:has([class*="play-icon"]), section.note-item:has([class*="video-icon"]), section.note-item:has([class*="video-cover"]), .video-container, [class*="video-player"], [class*="video-wrapper"], [class*="video-item"], section.note-item[class*="video"], .note-item:has(img[src*="video"]) { display: none !important; } `); // 自动筛选函数 function autoFilterImages() { // 查找筛选按钮(可能有多种选择器) const filterButtons = [ '.search-filter-bar .search-filter', // 主筛选按钮 '.tag-filter-tabs', // 标签筛选面板 '.filter-button', // 通用筛选按钮 '[class*="filter"]', // 类名包含filter的按钮 'button:contains("筛选")', // 文本为"筛选"的按钮 '.search-right .filter' // 搜索右侧筛选按钮 ]; let filterBtn = null; for (const selector of filterButtons) { // 使用原生querySelectorAll遍历所有选择器 const buttons = document.querySelectorAll(selector); for (const btn of buttons) { if (btn) { filterBtn = btn; break; } } if (filterBtn) break; } if (!filterBtn) { console.log("未找到筛选按钮"); return false; } // 点击筛选按钮展开面板 filterBtn.click(); console.log("点击筛选按钮"); // 等待面板展开 setTimeout(() => { // 查找"只看图片"选项 const imageFilters = document.querySelectorAll(` .tag-filter-tabs .tag-filter-item:contains("图片"), .tag-filter-tabs [class*="image"], .tag-filter-tabs [text*="图片"], [class*="tag-img"], [class*="filter-item"]:contains("图片") `); let imageFilter = null; for (const filter of imageFilters) { if (filter && filter.textContent.includes('图片')) { imageFilter = filter; break; } } if (!imageFilter) { console.log("未找到'只看图片'选项"); return false; } // 点击"只看图片"选项 imageFilter.click(); console.log("点击'只看图片'选项"); // 等待操作完成 setTimeout(() => { console.log("成功筛选图片内容"); // 点击其他地方关闭面板(可选) }, 500); }, 500); return true; } // 检查URL参数,判断是否需要筛选 function shouldFilter() { const url = new URL(window.location.href); const source = url.searchParams.get('source'); const supervideo = url.searchParams.get('supervideo'); // 如果已经是图片筛选结果,不需要操作 if (supervideo === '0') return false; // 如果是搜索结果页,尝试筛选 if (source === 'normal_search' || source === 'top_search') { return true; } // 非搜索页(如首页、分类页)也需要筛选 return true; } // 初始化函数 function init() { console.log("小红书视频屏蔽脚本启动"); // 检查当前URL是否需要筛选 if (!shouldFilter()) { console.log("当前页面已为图片筛选结果"); return; } // 尝试自动筛选 let attemptCount = 0; const maxAttempts = 10; const tryFilter = () => { attemptCount++; console.log(`尝试自动筛选 (第${attemptCount}次)`); if (attemptCount > maxAttempts) { console.log("达到最大尝试次数,放弃自动筛选"); return; } if (autoFilterImages()) { return; // 成功后立即退出 } // 如失败稍后重试 setTimeout(tryFilter, 1500); }; // 页面加载完成后延迟执行 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', tryFilter); } else { tryFilter(); } } // 监听页面变化(翻页、导航等) let lastUrl = window.location.href; new MutationObserver(() => { const url = window.location.href; if (url !== lastUrl) { lastUrl = url; console.log("URL变化重新初始化"); init(); } }).observe(document, { childList: true, subtree: true }); // 初始化 init(); // 添加页面可见性变化监听 document.addEventListener('visibilitychange', () => { if (!document.hidden) { console.log("页面重新可见,重新初始化"); setTimeout(init, 1000); } }); })();