【油猴脚本】自定义左侧边栏 新
本帖最后由 星之子 于 2025-5-10 02:02 编辑动机
泥潭的左侧栏应该是所有页面都会有、可触达性最好的快捷键。但这里一部分不太常用的按钮,如“论坛规范”“新人升级”“常见问题”等度过新手期就不再使用、“近期活动”本质上是跳转活动中心但活动一般会小电视置顶的等等。让它们占据一个使用率如此之高的快捷栏,感觉稍微有那么一丢丢浪费,所以写了这个脚本。
但是Chrome更新新版本后,脚本旧版本似乎出现了一些冲突,导致页面卡顿、崩溃;而且在某次论坛更新中,左侧边栏的结构也发生了变化,添加了一些新按钮。在加上一些论坛政策变化,如投票不再加血液因此左侧不需要再留“本月调查”按钮,等。因此借助DeepSeek重构了原脚本的代码,并按照我个人的使用习惯,重新配置了一些左侧边栏(依然保留了自定义功能)。
主要功能
给左侧栏的每一个按钮位置都添加了一个可自定义编辑的参数,可以通过以下方式修改:
// 定义每个按钮的配置,默认保持不变
// 1 表示按钮不变
// 0 表示禁止按钮显示
// 2 表示修改按钮 请按照格式进行填写
左边这些符号可以自行挑选,我这里列出我找符号时用到的两个网址:
https://tool.lmeee.com/fuhao/teshu
https://www.cnblogs.com/facingscreen/p/18103217
代码
@Name@Match
这里有部分代码是按照我自己的喜好修改的,不过原理相同,可以参考格式自行修改成喜欢的。
// ==UserScript==
// @name 全局:自定义左侧边栏
// @namespace http://tampermonkey.net/
// @version 1.1
// @description[安全优化版] 修改导航菜单按钮的显示内容、悬浮提示和链接
// @author Étoiles
// @match https://www.gamemale.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// 配置项保持不变
const buttonConfig = {
//首页
"mn_forum": ,
//论坛规范
"mn_N2c45": ,
//新人升级
"mn_Na183": ,
//常见问题
"mn_N69dc": ,
//勋章商城
"mn_Nf376": ,
//我的勋章
"mn_N13d5": ,
//道具超市
"mn_Nc5cc": ,
//血液祭献
"mn_N35bc": ,
//你画我猜
"mn_N34e7": ,
//日常卡片
"mn_N91b5": ,
//头衔称号
"mn_N50a7": ,
//热门任务
"mn_Ncfa1": ,
//近期活动
"mn_N2e25": ,
//转帖合集
"mn_N4483": ,
//科考小队
"mn_Ncc15":
};
// 核心处理函数
const processMenu = () => {
const menuItems = document.querySelectorAll('.nav-menu li:not()');
menuItems.forEach(item => {
const config = buttonConfig;
if (!config) return;
item.dataset.processed = 'true'; // 标记已处理
if (config === 0) {
item.style.display = 'none';
return;
}
if (config === 2) {
const link = item.querySelector('a');
if (!link) return;
// 依次更新内容
if (config) link.textContent = config;
if (config) link.title = config;
if (config) link.href = config;
}
});
};
// 防抖处理
let updateTimer;
const safeUpdate = () => {
clearTimeout(updateTimer);
updateTimer = setTimeout(processMenu, 300);
};
// 初始化执行
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', processMenu);
} else {
processMenu();
}
// 优化后的观察器
const observer = new MutationObserver(mutations => {
const needsUpdate = mutations.some(mutation =>
[...mutation.addedNodes].some(node =>
node.nodeType === 1 && node.matches('li')
)
);
if (needsUpdate) safeUpdate();
});
// 精确监听导航容器
const navContainer = document.querySelector('.nav-menu');
if (navContainer) {
observer.observe(navContainer, {
childList: true,
subtree: true
});
}
// 清理残留标记
window.addEventListener('unload', () => {
document.querySelectorAll('').forEach(el => {
el.removeAttribute('data-processed');
});
});
})();
星象占卜 大佬太强了,刚还想着左边很多按钮都没什么用了(ˉ▽ ̄~) 很好用的脚本,像一些二手市场之类经常用的板块以前需要多操作几步,现在就可以一键直达了,不过画猜、血液献祭和日常抽卡倒是经常会用到,我是自己稍微调整了一下,感觉真的舒服多了https://img.gamemale.com/album/202404/14/192045bbtza7lbqq9et2ab.gif 现在确实用到左边栏的情况不太多了,可以屏蔽用不到的栏目很方便 这种优化体验的脚本当然是多多益善 这倒确实,有些左边栏基本不会用到,不如换一下 相当有用,一些常去板块还有二手市场都可以一键直达了 自定义左侧边栏真是很实用了,可以把一些不常用的换成自己常用的 可以说是相当实用了,有时候进度条一直没加载好就点个人中心老是容易点到退出登陆,烦都要烦死:L
加快加载速度真的是好文明 很好的优化了论坛的功能呢~并且还是要感叹一句这个deepseek是真的厉害,从写文到编码,可谓是无所不能了 现在左边最常用的就是日常卡片和我的勋章了属于是_(:з」∠)_ 感谢大佬分享,很有用的啊 感谢大佬分享。先码住慢慢学 好厉害啊,居然能写这样的脚本,左边干净多了
我也好厉害,一次就运行成功了
星大佬好厉害啊~左栏某些项目真的不太用~能够自定义很不错~感谢大佬分享{:4_91:} 本帖最后由 thh866 于 2025-5-10 10:33 编辑
哦豁,好用的,把平常用的多的放标签方便太多了{:6_200:}
在标签显示上,点击二手市场后,虽然跳转了二手市场,但是实际标签会停在勋章商城,跟用脚本之前点我的勋章一样的的效果
感谢楼主发脚本优化泥潭使用!能够自定义使用太赞了! 自定义按钮那很厉害了,侧边栏经常按到新人升级和规范里面 好厉害的技术党,虽然还没开始用油猴但是先马一下~ 挺好的,把一些不常用的省略掉,强迫症一本满足~