您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
discord爬楼辅助器
当前为
// ==UserScript== // @name discord jump top // @namespace http://tampermonkey.net/ // @version v0.0.8 // @description discord爬楼辅助器 // @author bincooo 折戟沉沙、丿 // @match https://discord.com/channels/* // @icon https://www.google.com/s2/favicons?sz=64&domain=discord.com // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js // @grant none // @license MIT // ==/UserScript== (function() { console.log("discord jump top") document.head.appendChild($(`<style>.j-top, j-cancel {}</style>`)[0]) const jumpBtm = $(`<a class='j-top' href='javascript:;' style='position: absolute; top: calc(100% - 20px); right: 30px; cursor: pointer'>jump top ⬆️</a>`) const cancelBtm = $(`<a class='j-cancel' hidden href='javascript:;' style='position: absolute; top: calc(100% - 20px); right: 30px; cursor: pointer'>cancel</a>`) function waitTimout(selector, millisecond) { let timer, count = millisecond / 1000; return new Promise(function(resolve, reject) { timer = setInterval(() => { const obj = $(selector); if (obj.length > 0) { clearInterval(timer); return resolve(obj); } if (count == 0) { clearInterval(timer); return reject(); } count--; }, 1000) }) } function rebin(selector, fun) { let retry = 10, timer; timer = setInterval(() => { if (retry <= 0) { clearInterval(timer); return } retry -- if ($(selector).length > 0) { return } fun() }, 1000); } function jumpTop(selector, key = 'g') { const top = $(`#j${key}-top`); if (top.length > 0) { return } let retry = 30; const btm = jumpBtm.clone(); const cancel = cancelBtm.clone(); btm.attr("id", `j${key}-top`) rebin(`#j${key}-top`, () => { const barArea = $(selector) barArea.append(btm); barArea.append(cancel); btm.click(() => { if (btm.disabled === true) { return } btm.disabled = true; btm.attr("hidden", true); cancel.attr("hidden", false); const $jump = (resolve, reject) => { if (retry <= 0) { resolve() retry = 30; return } retry --; const chat = $("div[id^=chat-messages-]"); $("div[class^=messagesWrapper] > div[class^=scroller_]").animate({scrollTop: 0}, 800); setTimeout(() => { (chat.length > 0) ? resolve() : $jump(resolve, reject); }, 1000); } new Promise($jump).then(_ => { btm.disabled = false; btm.attr("hidden", false); cancel.attr("hidden", true); console.log("~ top over ~"); retry = 30; }); }); cancel.click(() => { retry = 0 btm.attr("hidden", false); cancel.attr("hidden", true); }); jumpTop(selector, key); }); } $(() => { let appAsidePanelWrapper = false waitTimout('#app-mount div[class^=appAsidePanelWrapper_]', 10000)?.then(dom => { dom.on('click', () => { console.log('appAsidePanelWrapper click ...') const barArea = $("div[class^=channelBottomBarArea_]"); if (barArea.length > 0 && barArea.find('#jg-top').length == 0) { jumpTop("div[class^=channelBottomBarArea_]", 'g'); } }); setTimeout(() => dom.trigger('click'), 3000); }); }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址