您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork镜像 is available in English.
A userscript that changes the document title if there are unread messages
当前为
// ==UserScript== // @name GitHub Title Notification // @version 1.0.1 // @description A userscript that changes the document title if there are unread messages // @license https://creativecommons.org/licenses/by-sa/4.0/ // @namespace http://github.com/Mottie // @include https://github.com/* // @run-at document-idle // @grant GM_registerMenuCommand // @grant GM_getValue // @grant GM_setValue // @author Rob Garrison // ==/UserScript== /* jshint unused:true, esnext:true */ (function() { "use strict"; let timer, // indicator added to document title (it will be wrapped in parentheses) indicator = GM_getValue("indicator", "♥"), // check every 30 seconds interval = GM_getValue("interval", 30); function hasClass(el, name) { if (el) { return el.classList ? el.classList.contains(name) : new RegExp("\\b" + name + "\\b").test(el.className); } return false; } function check() { let title = document.title, hasUnread = hasClass(document.querySelector(".mail-status"), "unread"); // if (!/^\(\d+\)/.test(title)) { title = title.replace(/^\([^)]+\)\s/, ""); } document.title = hasUnread ? "(" + indicator + ") " + title : title; } function setTimer() { clearInterval(timer); if (document.querySelector(".mail-status")) { timer = setInterval(function() { check(); }, interval * 1000); check(); } } // Add GM options GM_registerMenuCommand("Set GitHub Title Notification Indicator", function() { indicator = prompt("Indicator Value (it will be wrapped in parentheses)?", indicator); GM_setValue("indicator", indicator); check(); }); GM_registerMenuCommand("Set GitHub Title Notification Interval", function() { interval = prompt("Interval Value (in seconds)?", interval); GM_setValue("interval", interval); setTimer(); }); setTimer(); })();