Files
LTHDNavigationPageTamper/plugin-web/force-dark-mode.user.js
T
lrss3 8956799853 重构项目结构并更名为 Token Meter(token_meter)
- ai-usage-mysql-bridge 更名为 token-meter(项目重心),代码内日志、健康检查、
  启动脚本与控制台标题统一为 Token Meter 品牌
- 新增 plugin-web/ 集中存放篡改猴脚本,文件名语义化并加 .user.js 后缀,
  附 README 说明各脚本用途与安装方法
- 新增根 README.md:项目简介、结构说明、后端快速开始与 API 一览
- 旧的 __old_extend.js、__review_diff.txt 归档到 archive/
2026-08-30 23:43:05 +08:00

56 lines
1.9 KiB
JavaScript

// ==UserScript==
// @name 强制暗黑模式 - 192.168.0.87 (V2.0 滤镜版)
// @namespace http://tampermonkey.net/
// @version 2.0
// @description 使用CSS滤镜强制反色,无视任何CSS优先级锁定。
// @author AI Assistant
// @match http://192.168.0.87:7575/*
// @grant none
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
// 1. 定义滤镜样式 (优先级高于任何CSS)
const filterCSS = `
/* 全局反色,模拟暗黑模式 */
html {
filter: invert(90%) hue-rotate(180deg) !important;
background-color: #000 !important;
}
/* 反转图片和视频,防止它们变成负片 */
img, video, canvas, svg {
filter: invert(100%) hue-rotate(180deg) !important;
}
/* 修正Lucide图标在滤镜下的显示 */
svg[data-lucide] {
filter: invert(100%) hue-rotate(180deg) brightness(1.2) !important;
}
`;
// 2. 注入函数
function injectFilter() {
if (document.getElementById('tm-dark-filter')) {
console.log('[DarkMode V2] 滤镜已存在');
return;
}
const style = document.createElement('style');
style.id = 'tm-dark-filter';
style.textContent = filterCSS;
(document.head || document.documentElement).appendChild(style);
console.log('[DarkMode V2] 滤镜样式已注入');
}
// 3. 立即执行
console.log('[DarkMode V2] 脚本启动, readyState:', document.readyState);
injectFilter();
// 4. 监听DOM变化,防止SPA动态内容丢失滤镜
const observer = new MutationObserver(() => {
injectFilter();
});
observer.observe(document.documentElement, { childList: true, subtree: true });
console.log('[DarkMode V2] MutationObserver 已启动');
})();