前言

之前群里就有小伙伴说了一个不大不小的问题,就是在切换成深色模式后刷新页面,右键菜单还是会显示深色模式,按照逻辑应该显示浅色模式。

今天刚好有空,于是就研究一下这个BUG,并且解决一下。

教程

1.首先找到themes\solitude\source\js\right_menu.js文件

2.在最底部添加如下代码。

// 页面加载时初始化右键菜单模式按钮文本
document.addEventListener('DOMContentLoaded', function () {
    // 检测当前主题模式
    const isDarkMode = document.body.classList.contains('dark-mode') ||
        document.documentElement.getAttribute('data-theme') === 'dark' ||
        document.body.getAttribute('data-theme') === 'dark';

    // 初始化右键菜单模式按钮文本
    if (rm.menuItems.mode) {
        rm.mode(isDarkMode);
    }
});

// 注册主题变化监听,确保主题切换时右键菜单按钮文本同步更新
if (window.globalFn) {
    if (!window.globalFn.themeChange) {
        window.globalFn.themeChange = {};
    }

    // 添加右键菜单的主题变化监听函数
    window.globalFn.themeChange.rightMenuMode = function (mode) {
        if (rm.menuItems.mode) {
            rm.mode(mode === 'dark');
        }
    };
}

3.保存后一键三连即可。

至此问题就解决了。