您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
去除雪球弹窗、侧边栏、聊天栏,自动展开"查看更多",优化页面布局
// ==UserScript== // @name 去除雪球弹窗、侧边栏、聊天栏 // @namespace https://github.com/your-namespace // @version 1.2 // @description 去除雪球弹窗、侧边栏、聊天栏,自动展开"查看更多",优化页面布局 // @author ddrwin // @match *://xueqiu.com/* // @grant GM_addStyle // @run-at document-idle // @license MIT // ==/UserScript== (function() { 'use strict'; // 添加自定义样式 GM_addStyle(` /* 隐藏聊天栏 */ #snb_im { display: none !important; } /* 隐藏侧边栏 */ .home__col--rt { display: none !important; } /* 调整主内容区宽度 */ .home__col--lt { width: 100% !important; max-width: 1200px !important; margin: 0 auto !important; padding: 0 20px !important; } /* 去除弹窗 */ .modal__jianlian, .index_close_1Ux, .index_con_1AQ { display: none !important; } /* 优化页面布局 */ body { background-color: #f5f7fa; font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif; } .container { padding: 20px 0; } .home__main { background: white; border-radius: 8px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05); padding: 25px; margin-bottom: 20px; } .home__main-header { margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #eee; } /* 自动展开的内容样式 */ .expanded-content { background: #f9fafc; border-radius: 8px; padding: 15px; margin-top: 15px; border-left: 3px solid #1e80ff; } /* 优化帖子样式 */ .status__content { line-height: 1.7; font-size: 15px; color: #333; } /* 优化评论区域 */ .comments__editor { background: #f9fafc; border-radius: 8px; padding: 15px; } /* 响应式调整 */ @media (max-width: 768px) { .home__col--lt { padding: 0 10px !important; } .home__main { padding: 15px; } } `); // 自动关闭弹窗的函数 function closePopups() { // 第一种弹窗 const popup1 = document.querySelector('div.modal.modal__jianlian.image__modal.taichi_popup'); const closeBtn1 = document.querySelector('div.modal.modal__jianlian.image__modal.taichi_popup > a.close'); // 第二种弹窗 const popup2 = document.querySelector('a.index_close_1Ux'); const closeBtn2 = document.querySelector('a.index_close_1Ux'); if (popup1 && closeBtn1) { closeBtn1.click(); } if (popup2 && closeBtn2) { closeBtn2.click(); } } // 自动展开"查看更多"内容 function expandShowMore() { const showMoreButtons = document.querySelectorAll('a.show_more'); showMoreButtons.forEach(button => { if (!button.classList.contains('expanded-by-script')) { button.classList.add('expanded-by-script'); // 模拟点击展开 button.click(); // 添加标记表示已展开 const container = button.closest('.status__content'); if (container) { container.classList.add('expanded-content'); } } }); } // 优化页面布局的额外调整 function optimizeLayout() { // 调整主内容区域 const mainContent = document.querySelector('.home__main'); if (mainContent) { mainContent.style.boxShadow = '0 4px 20px rgba(0, 0, 0, 0.06)'; mainContent.style.borderRadius = '10px'; } // 优化帖子标题 const postTitles = document.querySelectorAll('.status__title'); postTitles.forEach(title => { title.style.fontSize = '18px'; title.style.fontWeight = '600'; title.style.color = '#1d2129'; title.style.marginBottom = '10px'; }); // 优化帖子元信息 const postMetas = document.querySelectorAll('.status__meta'); postMetas.forEach(meta => { meta.style.color = '#86909c'; meta.style.fontSize = '13px'; meta.style.marginBottom = '15px'; }); } // 使用MutationObserver监听DOM变化 const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.addedNodes.length) { closePopups(); expandShowMore(); optimizeLayout(); } }); }); // 开始观察整个文档 observer.observe(document, { childList: true, subtree: true }); // 初始执行 closePopups(); expandShowMore(); optimizeLayout(); // 延时执行确保所有元素加载完毕 setTimeout(() => { closePopups(); expandShowMore(); optimizeLayout(); }, 3000); // 添加脚本标识 const scriptTag = document.createElement('div'); scriptTag.innerHTML = ` <div style="position:fixed; bottom:20px; right:20px; background:#1e80ff; color:white; padding:8px 15px; border-radius:20px; font-size:12px; z-index:9999; box-shadow:0 3px 10px rgba(30,128,255,0.3);"> 雪球优化脚本已启用 ✓ </div> `; document.body.appendChild(scriptTag); // 5秒后移除标识 setTimeout(() => { scriptTag.remove(); }, 5000); })();