位置:首页 > 行业软件 > 米侠浏览器脚本实现网页暗黑模式切换教程

米侠浏览器脚本实现网页暗黑模式切换教程

时间:2026-06-27  |  作者:318050  |  阅读:0

要实现暗黑模式切换,必须先升级到v3.8.2及以上的正式版。

然后在设置里打开「允许运行用户脚本」开关。

接着通过一个持久化用户脚本绑定Ctrl+Shift+D快捷键,动态注入CSS样式。

这样就能绕过米侠对prefers-color-scheme的限制,同时移除干扰的meta标签,修复SVG图标失真。

一句话概括:在米侠里搞暗黑模式,就是绕过它不支持原生CSS媒体查询的短板。直接操作DOM和样式表,让切换干脆利落,无需重新加载页面。

确认米侠浏览器脚本执行环境

第一步,打开米侠浏览器,进入「设置」→「高级」→「开发者选项」。开启「允许运行用户脚本」。

如果这一项是灰色的点不了,说明你用的是精简版。必须升级到v3.8.2及以上正式版,否则所有脚本都没法注入。

怎么确认脚本能不能跑?方法很简单:

  • 打开任意网页,按F12调出开发者工具。
  • 切换到Console标签页,输入alert('test'),然后回车。
  • 如果弹窗出现,证明脚本执行通道正常。
  • 如果没反应,请重启浏览器,再检查开关是否真的打开。

注入基础暗黑模式切换脚本

方法一:控制台临时执行(适合调试)

在目标网页的Console里粘贴以下代码并回车:

document.documentElement.classList.toggle('dark-mode'); document.documentElement.style.cssText += 'filter: invert(1) hue-rotate(180deg);';

这种方式原理很简单:反转颜色,但图片和表单元素不受影响。

刷新页面后失效,适合快速验证效果,不适合长期使用。

方法二:持久化用户脚本(强烈推荐)

点击地址栏右侧的「脚本管理器」图标,选择「新建脚本」。粘贴以下完整逻辑:

// ==UserScript==
// @name 网页暗黑模式切换
// @namespace mihelper.dark
// @version 1.2
// @description 按 Ctrl+Shift+D 切换暗黑模式,自动适配文本/背景/输入框
// @match *://*/*
// @grant none
// ==/UserScript==

const toggleDark = () => {
if (document.body.classList.contains('mih-dark-active')) {
document.body.classList.remove('mih-dark-active');
document.documentElement.removeAttribute('data-mih-dark');
} else {
document.body.classList.add('mih-dark-active');
document.documentElement.setAttribute('data-mih-dark', 'true');
}
};

document.addEventListener('keydown', e => {
if (e.ctrlKey && e.shiftKey && e.key === 'D') toggleDark();
});

if (!document.getElementById('mih-dark-style')) {
const style = document.createElement('style');
style.id = 'mih-dark-style';
style.textContent = `
[data-mih-dark="true"] { filter: invert(90%) hue-rotate(180deg); }
[data-mih-dark="true"] img, [data-mih-dark="true"] video { filter: invert(100%) hue-rotate(180deg); }
[data-mih-dark="true"] input, [data-mih-dark="true"] textarea { background:#333 !important; color:#eee !important; }
`;
document.head.appendChild(style);
}

保存后刷新页面,按Ctrl+Shift+D即可切换。

注意:按下组合键时别太早松开Ctrl键,否则触发的是浏览器自身快捷键。

修复常见兼容性问题

第一步:禁用网站自带的暗黑逻辑干扰

在用户脚本末尾,document.head.appendChild(style);这一行后面,追加以下代码:

const metaDark = document.querySelector('meta[name="color-scheme"], meta[name="theme-color"]'); if (metaDark) metaDark.remove();

这样可以防止网站自带的暗黑逻辑与脚本冲突。

第二步:绕过米侠对prefers-color-scheme的忽略

米侠浏览器不响应@media (prefers-color-scheme: dark),因此无法使用CSS媒体查询匹配系统设置。

唯一的办法是强制接管:所有样式规则必须写在内联的