您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
問題選択を簡単に行うことができるボタンを追加します
您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
- // ==UserScript==
- // @name AtCoder Problem Buttons
- // @namespace http://tampermonkey.net/
- // @version 0.2
- // @description 問題選択を簡単に行うことができるボタンを追加します
- // @author Chippppp
- // @license MIT
- // @match https://atcoder.jp/contests/*/submit*
- // @grant none
- // ==/UserScript==
- (() => {
- "use strict";
- let problemButton = document.getElementById("select-task");
- let buttonGroup = problemButton.parentElement;
- let problemButtons = [];
- for (let i of problemButton.children) {
- let button = document.createElement("button");
- buttonGroup.appendChild(button);
- button.className = "btn btn-default";
- button.type = "button";
- button.innerText = i.innerText;
- button.value = i.value;
- problemButtons.push(button);
- }
- problemButtons[0].className = "btn btn-success";
- for (let i of problemButtons) {
- i.addEventListener("click", () => {
- for (let button of problemButtons) button.className = "btn btn-default";
- i.className = "btn btn-success";
- problemButton.value = i.value;
- problemButton.dispatchEvent(new Event("change"));
- });
- if (i.innerText == problemButton.innerText) i.click();
- }
- problemButton.onchange = () => {
- for (let button of problemButtons) {
- if (button.value == problemButton.value) button.className = "btn btn-success";
- else button.className = "btn btn-default";
- }
- };
- })();