// ==UserScript== // @name 笔点会员身份替换 // @namespace https://AiiyiYei.com/tihuan // @version 2026.8.10 // @description 会员替换+精准隐藏广告滑块,保留主题/排序功能按钮+,去掉新版按钮、工具、小组、整体添加等非核心内容 // @match *://*.bidianer.com/* // @grant none // @run-at document-load // ==/UserScript== (function() { // -------------------------- 配置区 -------------------------- const classList = [ { target: 'vip-badge', add: 'active' }, ]; const textList = [ { target: '非会员', replacement: '至尊 VIP' }, { target: ',购买高级会员获得更多权益!', replacement: '(终身版)' }, { target: '2021年02月26日 注册', replacement: '2014年04月15日 注册' }, ]; const contentSelector = ''; // ------------------------------------------------------------ function addHideStyle() { const style = document.createElement('style'); style.textContent = ` .layout-slider-container { display: block !important; } .layout-slider:has(a > img) { display: none !important; } .layout-slider:has(.ri-sort-desc), .layout-slider:has(.ri-sun-line), .layout-slider:has(.ri-moon-line) { display: block !important; } /* 隐藏体验新版按钮 */ .el-popover__reference-wrapper .br-btn:has(.ri-arrow-up-circle-line) { display: none !important; } /* 隐藏小组菜单 */ li[data-v-08e89337] a.menu-item[href="/group"] { display: none !important; } /* 隐藏会员付费菜单 */ li[data-v-08e89337] a.menu-item[href="/price"] { display: none !important; } /* 隐藏工具菜单 */ li.menu-split[data-v-08e89337] a.menu-item[href="/tool"] { display: none !important; } /* 隐藏帮助下拉菜单 */ .el-popover__reference-wrapper .help-menu-item { display: none !important; } /* 精准隐藏「添加」按钮,保留同栏其他图标 */ li.icon-item[data-v-7aa8b7d2] button:has(.ri-add-large-line) { display: none !important; } `; document.head.appendChild(style); } addHideStyle(); function escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } function log(type, message) { console.log(`%c[稳定版脚本] [${type}] ${message}`, 'color: #4CAF50;'); } function processClasses(element) { if (!element || element.nodeType !== Node.ELEMENT_NODE) return; classList.forEach(item => { if (element.classList.contains(item.target) && !element.classList.contains(item.add)) { element.classList.add(item.add); log('class替换', `成功:${item.target}`); } }); element.childNodes.forEach(child => processClasses(child)); } function processTexts(node) { if (node.nodeType === Node.ELEMENT_NODE) { const tag = node.tagName.toLowerCase(); if (tag === 'script' || tag === 'style') return; if (tag === 'input' || tag === 'textarea') { textList.forEach(item => { if (node.value.includes(item.target)) { node.value = node.value.replace(new RegExp(escapeRegExp(item.target), 'g'), item.replacement); log('文本替换', `输入框:${item.target} → ${item.replacement}`); } }); } } if (node.nodeType === Node.TEXT_NODE) { const firstText = textList[0]; if (node.nodeValue.includes(firstText.target)) { node.nodeValue = node.nodeValue.replace(new RegExp(escapeRegExp(firstText.target), 'g'), firstText.replacement); log('文本替换', `第一个文本成功:${firstText.target} → ${firstText.replacement}`); } textList.slice(1).forEach(item => { if (node.nodeValue.includes(item.target)) { node.nodeValue = node.nodeValue.replace(new RegExp(escapeRegExp(item.target), 'g'), item.replacement); log('文本替换', `${item.target} → ${item.replacement}`); } }); } node.childNodes.forEach(child => processTexts(child)); } function fullReplace() { log('替换触发', '开始扫描替换...'); let targetElement = document.body; if (contentSelector) { const container = document.querySelector(contentSelector); if (container) targetElement = container; } processClasses(targetElement); processTexts(targetElement); } const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { mutation.addedNodes.forEach(addedNode => { if (addedNode.nodeType === Node.ELEMENT_NODE || addedNode.nodeType === Node.TEXT_NODE) { processClasses(addedNode); processTexts(addedNode); } }); }); }); observer.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: ['class'] }); function handlePageChange() { log('页面切换', '检测到路由变化,启动多轮替换...'); const delays = [300, 800, 1500, 2500, 4000]; delays.forEach(ms => { setTimeout(() => { log('页面切换重试', `延迟${ms}ms执行替换`); fullReplace(); }, ms); }); } window.addEventListener('popstate', handlePageChange); window.addEventListener('hashchange', handlePageChange); const originalPushState = history.pushState; history.pushState = function(...args) { originalPushState.apply(this, args); handlePageChange(); }; fullReplace(); setTimeout(fullReplace, 1000); setTimeout(fullReplace, 3000); log('启动完成', '已精准隐藏广告,保留主题/排序功能按钮'); })();