// ==UserScript== // @name ctfshow辅助 // @namespace http://peterzhang.top/ // @version 0.1 // @description show again! // @author PeterZhang<1809909143@qq.com> // @match https://ctf.show/challenges // @icon https://peterzhang.top/favicon.ico // @grant none // @downloadURL none // ==/UserScript== (function () { 'use strict'; // Your code here... const prefix = 't-'; // style $('head').append( `` ); function refreshContentIndex(records, observer) { if (records[0].target.style.display !== 'none' || $('#challenges-board .category-header h3').length < 1) { return; } const outerDiv = $(`
`); const div = $(`
`); div[0].style.maxHeight = (window.innerHeight - 100) + 'px'; outerDiv.append(div); $('#challenges-board').append(outerDiv); $('#challenges-board .category-header h3').each(function () { $(this).attr('id', `${prefix}${$(this).text()}`); const a = $(` `); a.click(() => { $('html, body').animate({scrollTop: $(this).offset().top - 80}, 200); }); div.append(a); }); } let observer = new MutationObserver(refreshContentIndex); observer.observe($('#chall-load-spinner')[0], {attributes: true}); })();