您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
AtCoderの問題文中の文字列にの横にコピーボタンを置きます。
- // ==UserScript==
- // @name AtCoder copy button adder
- // @namespace https://github.com/H20-DHMO
- // @version 1.1
- // @description AtCoderの問題文中の文字列にの横にコピーボタンを置きます。
- // @author H20_dhmo
- // @license MIT
- // @match https://atcoder.jp/contests/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- // copy button
- function copyButton() {
- window.getSelection().removeAllRanges();
- try {
- const targetId = $(this).data('target');
- const text = $('#' + targetId).text();
- navigator.clipboard.writeText(text).then(() => {
- $(this).tooltip('show');
- $(this).blur();
- setTimeout(() => { $(this).tooltip('hide'); }, 800);
- });
- } catch (err) {
- console.log(err);
- }
- window.getSelection().removeAllRanges();
- }
- function addCopyButton(element) {
- // コピー用のボタン(span要素)を作成
- const uuid = self.crypto.randomUUID();
- element.setAttribute('id', uuid);
- const copyBtn = $(`<span class="btn btn-default btn-xs btn-copy ml-1" tabindex="0" data-toggle="tooltip" data-trigger="manual" title="Copied!" data-target="${uuid}">Copy</span>`);
- $(element).after(copyBtn);
- copyBtn.click(copyButton);
- }
- // 問題内の<code>要素を取得
- const codes = document.querySelectorAll('#task-statement .part code');
- codes.forEach(function(elm) {
- addCopyButton(elm);
- });
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址