您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Atcoderの問題のページに問題タイトルをクリップボードにコピーするボタンを追加します
当前为
// ==UserScript== // @name Atcoder Title Copy // @namespace http://tampermonkey.net/ // @version 1.1 // @description Atcoderの問題のページに問題タイトルをクリップボードにコピーするボタンを追加します // 拡張子を問題タイトルの最後につけることも可能です // @author sin471 // @match https://atcoder.jp/contests/*/tasks/* // @grant none // @license MIT // // ==/UserScript== /* ユーザー設定項目 */ /* A - AtCoder → A - AtCoder.js のように、デフォルトで拡張子をつける場合は、 ダブルクオテーションの中に拡張子を入力 */ const extension = "";//ex: ".js" /* Copied!を表示する時間を変更 デフォルトでは1500ms(1.5秒) */ const sleepTime = 1500 /* 設定項目終わり */ function copy() { var title = document.getElementsByClassName("h2")[0]; //改行文字を削除 var text = title.firstChild.textContent.trim(); //ユーザーの設定した拡張子を追加 text += extension; navigator.clipboard.writeText(text); }; // ミリ秒間待機する function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function notifyCopied(a) { a = this.name; a.textContent = "Copied!"; await sleep(1500); a.textContent = "Copy"; }; function create_button() { var parent = document.getElementsByClassName("h2"); var a = document.createElement("a"); a.textContent = "Copy"; //AtcoderのCopyボタンと同じCSSを適用 a.setAttribute("class", "btn btn-default btn-sm"); parent[0].appendChild(a); a.addEventListener('click', copy, false); //ボタン内のテキスト内容を一定時間"Copied!"に書き換え a.addEventListener('click', { name: a, handleEvent: notifyCopied }); }; create_button();