您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork镜像 is available in English.
Display AtCoder's judge status to a title bar
// ==UserScript== // @name AtCoder Judge Status to Title Bar // @namespace https://github.com/mihatsu-s/ // @version 1.0.0 // @description Display AtCoder's judge status to a title bar // @author Mihatsu // @match https://atcoder.jp/contests/*/submissions/* // @exclude https://atcoder.jp/*/json // ==/UserScript== (() => { const judgeStatusElement = document.getElementById("judge-status"); if (!judgeStatusElement) return; const state = { rawTitle: document.title, _hasFocus: true, get hasFocus() { return this._hasFocus; }, set hasFocus(val) { this._hasFocus = val; this._onUpdate(); }, _judgeStatus: "", _previousJudgeStatus: "", get judgeStatus() { return this._judgeStatus; }, set judgeStatus(val) { this._previousJudgeStatus = this._judgeStatus; this._judgeStatus = val; this._onUpdate(); }, _onUpdate() { document.title = this.hasFocus ? this.rawTitle : this.judgeStatus; }, }; state.hasFocus = document.hasFocus(); window.addEventListener("focus", () => { state.hasFocus = true; }); window.addEventListener("blur", () => { state.hasFocus = false; }); function readJudgeStatus() { return judgeStatusElement.textContent; } state.judgeStatus = readJudgeStatus(); new MutationObserver(() => { state.judgeStatus = readJudgeStatus(); }).observe(judgeStatusElement, { subtree: true, characterData: true, }); })();