您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
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,
- });
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址