// ==UserScript== // @name 夜间模式-shift快捷键版 // @description 自由调整每个网页亮度,实现不同网站使用不同亮度(快捷键:shift+鼠标左键双击)。 // @author jxb // @version 1.2 // @match *://*/* // @grant GM_setValue // @grant GM_getValue // @grant GM_addValueChangeListener // @grant GM_registerMenuCommand // @grant unsafeWindow // @noframes // @run-at document-body // @namespace https://greasyfork.org/users/694396 // 之前在油猴里发现了个加遮罩层降低网页亮度的脚本,修改亮度点击Ctrl+鼠标左键双击就能修改,很实用方便。 但后来发现这个脚本已经在已经在油猴官网里下掉了,故此备份一下。感谢原作者的辛勤付出。 // Ctrl+鼠标左键双击太容易误触了,把快捷键修改为shift+鼠标左键双击 // https://github.com/cellargalaxy/blog-code/blob/master/折腾/20211121/夜间模式油猴脚本备份.md // @downloadURL https://update.greasyfork.icu/scripts/437290/%E5%A4%9C%E9%97%B4%E6%A8%A1%E5%BC%8F-shift%E5%BF%AB%E6%8D%B7%E9%94%AE%E7%89%88.user.js // @updateURL https://update.greasyfork.icu/scripts/437290/%E5%A4%9C%E9%97%B4%E6%A8%A1%E5%BC%8F-shift%E5%BF%AB%E6%8D%B7%E9%94%AE%E7%89%88.meta.js // ==/UserScript== (function () { 'use strict'; if (self != top) { return false; } else { var eve = new class { constructor() { this.handles = {} } on(event, callback, index = 0) { if (!this.handles[event]) { this.handles[event] = [] } this.handles[event].push({ callback: callback, index: index }); this.handles[event].sort((a, b) => { return b.index - a.index }) } emit(event, ...data) { if (this.handles[event]) { for (let i of this.handles[event]) { if (i.callback(...data) === false) break } } } off(event, callback, index = 0) { if (this.handles[event]) { let s = []; for (let i of this.handles[event]) { if (i.callback != callback && i.index != index) { s.push(i) } } this.handles[event] = s } } }(); const Default_config = { globalBrightness: 0.95, SingleConfigMap: {} }; const wordsMap = { MenuCmd: "打开亮度调整菜单", settingsTitle: "亮度调整", setAsDefault: "设为默认亮度", closeSettingWindow: "关闭设置窗口", DeafultSetText: "网页默认亮度已被设置为", }; const body = document.querySelector("body"); let gm = new class { constructor() { this.key = "mscststs-brightness"; this.init() } init() { GM_registerMenuCommand(wordsMap.MenuCmd, () => { eve.emit("Cmd-OpenMenu") }); GM_addValueChangeListener(this.key, (name, old_value, new_value, remote) => { eve.emit("SettingUpdated", new_value) }) } getNowBrightness() { let config = this.getConfig(); return config.SingleConfigMap[window.location.host] || config.globalBrightness } getConfig() { return GM_getValue(this.key, Default_config) } setConfig(value) { GM_setValue(this.key, value) } setGlobalBrightness(value) { let config = this.getConfig(); config.globalBrightness = value; this.setConfig(config) } setHostBrightness(value, host = window.location.host) { let config = this.getConfig(); config.SingleConfigMap[host] = value; this.setConfig(config) } }(); function OpenMenuPage() { if (document.querySelector("#helper_brightness")) { } else { let div = document.createElement("div"); div.id = "helper_brightness"; div.innerHTML = '