您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
DCInside 다크 모드를 브라우저 설정에 맞춰 자동으로 전환
// ==UserScript== // @name DCInside Auto Dark Mode (Desktop) // @namespace https://dcinside.com/ // @version 1.2 // @description DCInside 다크 모드를 브라우저 설정에 맞춰 자동으로 전환 // @author iwj9 // @match https://dcinside.com/* // @match https://*.dcinside.com/* // @exclude https://m.dcinside.com/* // @grant none // @run-at document-start // @license MIT // ==/UserScript== (function() { 'use strict'; const darkQuery = window.matchMedia('(prefers-color-scheme: dark)'); let currentUrl = location.href; function isDarkActive() { return !!document.getElementById('css-darkmode'); } function applyBuiltIn() { try { if (typeof window.darkmode === 'function') { window.darkmode(); return true; } } catch (e) {} return false; } function setCookies(val) { const expire = "expires=Thu, 01 Jan 9999 00:00:00 GMT"; document.cookie = `used_darkmode=${val}; path=/; domain=.dcinside.com; ${expire}`; document.cookie = `darkmode=${val}; path=/; domain=.dcinside.com; ${expire}`; } function injectCSS() { if (isDarkActive()) return; setCookies(1); const link = document.createElement('link'); link.id = 'css-darkmode'; link.rel = 'stylesheet'; link.href = 'https://nstatic.dcinside.com/dc/w/css/dark.css?v=8'; document.head.appendChild(link); } function removeCSS() { if (!isDarkActive()) return; setCookies(0); const link = document.getElementById('css-darkmode'); link && link.remove(); } function swapImages(dark) { // 로고 및 안내 이미지 requestIdleCallback(() => { const img = selector => document.querySelector(selector); const logo = img('.logo_img'); const logo2 = img('.logo_img2'); const guide = img('.minor_make_guide img'); if (logo) logo.src = dark ? 'https://nstatic.dcinside.com/dc/w/images/dark/dcin_logo_dark.png' : (window.logo_img || logo.src); if (logo2 && typeof window.logo_prefix !== 'undefined') { logo2.src = dark ? `https://nstatic.dcinside.com/dc/w/images/dark/tit_${logo_prefix}gallery_dark.png` : `https://nstatic.dcinside.com/dc/w/images/tit_${logo_prefix}gallery.png`; } if (guide) guide.src = dark ? 'https://nstatic.dcinside.com/dc/w/images/dark/minor_infoimg2_dark.png' : 'https://nstatic.dcinside.com/dc/w/images/minor_infoimg2.png'; }); } function enableDark() { if (applyBuiltIn()) return; injectCSS(); swapImages(true); } function disableDark() { if (applyBuiltIn()) return; removeCSS(); swapImages(false); } function syncMode() { const wantDark = darkQuery.matches; const isNowDark = isDarkActive(); if (wantDark && !isNowDark) enableDark(); else if (!wantDark && isNowDark) disableDark(); } // 초기, 로드 이후, 설정 변경 감지 syncMode(); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', syncMode); } // 더 이상 실시간으로 다크모드를 갱신하지 않음. // darkQuery.addEventListener('change', syncMode); })();