您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Set top dynamic on detail page
当前为
// ==UserScript== // @name BiliDynamicTop // @namespace http://tampermonkey.net/ // @version 0.2 // @description Set top dynamic on detail page // @author You // @match https://www.bilibili.com/opus/* // @icon https://www.google.com/s2/favicons?domain=bilibili.com // @require https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js // @grant GM_cookie // ==/UserScript== function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } (function() { 'use strict'; let url_text = window.location.href; let m = url_text.slice(url_text.indexOf(".com/opus/") + 10); let q = m.indexOf("?"); let dynamicID = m.slice(0, q); if (q == -1) { dynamicID = m } console.log(dynamicID); waitForKeyElements("#app > div.opus-detail > div.bili-opus-view > div.opus-module-author > div.opus-module-author__right > div.opus-module-author__more > div > div > div",(e)=>{ let topButton = $('<div class="opus-more__menu__item">置顶</div>').click((self)=>{ let csrf = getCookie("bili_jct"); $.ajax({ url:"https://api.vc.bilibili.com/dynamic_mix/v1/dynamic_mix/space_top_set", type: "post", data:{ dynamic_id:dynamicID, csrf_token:csrf, csrf:csrf, }, xhrFields: { withCredentials: true }, }); }); e.append(topButton); }) })(); function waitForKeyElements( selectorTxt /* Required: The jQuery selector string that specifies the desired element(s). */, actionFunction /* Required: The code to run when elements are found. It is passed a jNode to the matched element. */, bWaitOnce /* Optional: If false, will continue to scan for new elements even after the first match is found. */, iframeSelector /* Optional: If set, identifies the iframe to search. */ ) { var targetNodes, btargetsFound; if (typeof iframeSelector == "undefined") targetNodes = $(selectorTxt); else targetNodes = $(iframeSelector).contents().find(selectorTxt); if (targetNodes && targetNodes.length > 0) { btargetsFound = true; /*--- Found target node(s). Go through each and act if they are new. */ targetNodes.each(function () { var jThis = $(this); var alreadyFound = jThis.data("alreadyFound") || false; if (!alreadyFound) { //--- Call the payload function. var cancelFound = actionFunction(jThis); if (cancelFound) btargetsFound = false; else jThis.data("alreadyFound", true); } }); } else { btargetsFound = false; } //--- Get the timer-control variable for this selector. var controlObj = waitForKeyElements.controlObj || {}; var controlKey = selectorTxt.replace(/[^\w]/g, "_"); var timeControl = controlObj[controlKey]; //--- Now set or clear the timer as appropriate. if (btargetsFound && bWaitOnce && timeControl) { //--- The only condition where we need to clear the timer. clearInterval(timeControl); delete controlObj[controlKey]; } else { //--- Set a timer, if needed. if (!timeControl) { timeControl = setInterval(function () { waitForKeyElements( selectorTxt, actionFunction, bWaitOnce, iframeSelector ); }, 300); controlObj[controlKey] = timeControl; } } waitForKeyElements.controlObj = controlObj; }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址