您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
无闪烁、防重置、支持特殊页面
// ==UserScript== // @name 知乎完美深色模式 // @namespace https://zhihu.com/ // @version 2.1 // @description 无闪烁、防重置、支持特殊页面 // @match *://*.zhihu.com/* // @run-at document-start // @grant none // @author TeacherLi07 // @license MIT // ==/UserScript== (function() { 'use strict'; // 跳过特殊页面 const allowList = [ 'link.zhihu.com', 'video.zhihu.com', 'www.zhihu.com/pub/book', 'www.zhihu.com/tardis' ]; if(allowList.some(d => location.host.includes(d))) return; // 核心修复函数 const forceDarkMode = () => { // 1. 清理所有可能干扰的URL参数 const url = new URL(location.href); url.searchParams.delete('theme'); // 移除所有theme参数 url.searchParams.set('theme', 'dark'); // 强制设置为dark history.replaceState(null, '', url.toString()); // 2. 深度存储覆盖 const darkKeys = [ 'ztheme', 'ztheme_auto', 'ZHUANLAN-ARTICLE-THEME', 'ZHIHU_THEME', 'ZHUANLAN-THEME', 'zhihu-theme' ]; darkKeys.forEach(k => localStorage.setItem(k, 'dark')); localStorage.setItem('ztheme_auto', 'false'); // 3. 抢占式DOM修改 if(document.documentElement) { document.documentElement.classList.add('Theme-dark'); document.documentElement.classList.remove('Theme-light'); document.documentElement.setAttribute('data-theme', 'dark'); } }; // 初始执行 forceDarkMode(); // 持续防护 const createProtection = () => { // 定时修复存储 setInterval(() => { localStorage.setItem('ztheme', 'dark'); localStorage.setItem('ztheme_auto', 'false'); }, 5000); // DOM变化监控 new MutationObserver(mutations => { mutations.forEach(m => { if(m.target === document.documentElement) { forceDarkMode(); } }); }).observe(document.documentElement, { attributes: true, attributeFilter: ['class', 'data-theme'] }); }; // 执行时机控制 if(document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', createProtection); } else { createProtection(); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址