星之子 发表于 2025-5-10 01:57:02

【油猴脚本】自定义左侧边栏 新

本帖最后由 星之子 于 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');
      });
    });
})();



星象占卜

Dapan 发表于 2025-5-10 02:15:35

大佬太强了,刚还想着左边很多按钮都没什么用了(ˉ▽ ̄~)

柏芸 发表于 2025-5-10 02:23:17

很好用的脚本,像一些二手市场之类经常用的板块以前需要多操作几步,现在就可以一键直达了,不过画猜、血液献祭和日常抽卡倒是经常会用到,我是自己稍微调整了一下,感觉真的舒服多了https://img.gamemale.com/album/202404/14/192045bbtza7lbqq9et2ab.gif

娱乐法师火布偶 发表于 2025-5-10 02:24:07

现在确实用到左边栏的情况不太多了,可以屏蔽用不到的栏目很方便

要有礼帽 发表于 2025-5-10 02:41:49

这种优化体验的脚本当然是多多益善

2302594 发表于 2025-5-10 06:55:39

这倒确实,有些左边栏基本不会用到,不如换一下

叶雨时 发表于 2025-5-10 07:50:07

相当有用,一些常去板块还有二手市场都可以一键直达了

you9632587 发表于 2025-5-10 08:17:44

自定义左侧边栏真是很实用了,可以把一些不常用的换成自己常用的

Hadley0T 发表于 2025-5-10 08:37:06

可以说是相当实用了,有时候进度条一直没加载好就点个人中心老是容易点到退出登陆,烦都要烦死:L
加快加载速度真的是好文明

parting 发表于 2025-5-10 09:01:40

很好的优化了论坛的功能呢~并且还是要感叹一句这个deepseek是真的厉害,从写文到编码,可谓是无所不能了

桀桀桀 发表于 2025-5-10 09:23:23

现在左边最常用的就是日常卡片和我的勋章了属于是_(:з」∠)_

wateri15 发表于 2025-5-10 09:49:37

感谢大佬分享,很有用的啊

WitchOL 发表于 2025-5-10 09:54:57

感谢大佬分享。先码住慢慢学

sc_6636 发表于 2025-5-10 10:00:03

好厉害啊,居然能写这样的脚本,左边干净多了
我也好厉害,一次就运行成功了

zibatco2 发表于 2025-5-10 10:16:31

星大佬好厉害啊~左栏某些项目真的不太用~能够自定义很不错~感谢大佬分享{:4_91:}

thh866 发表于 2025-5-10 10:26:23

本帖最后由 thh866 于 2025-5-10 10:33 编辑

哦豁,好用的,把平常用的多的放标签方便太多了{:6_200:}

在标签显示上,点击二手市场后,虽然跳转了二手市场,但是实际标签会停在勋章商城,跟用脚本之前点我的勋章一样的的效果

诺鸦cc 发表于 2025-5-10 10:58:13

感谢楼主发脚本优化泥潭使用!能够自定义使用太赞了!

sanweny 发表于 2025-5-10 11:52:40

自定义按钮那很厉害了,侧边栏经常按到新人升级和规范里面

小晨风 发表于 2025-5-10 11:54:13

好厉害的技术党,虽然还没开始用油猴但是先马一下~

毛茸茸兽兽 发表于 2025-5-10 12:15:38

挺好的,把一些不常用的省略掉,强迫症一本满足~
页: [1] 2 3
查看完整版本: 【油猴脚本】自定义左侧边栏 新