bilibilipage B站up主投稿页面跳到指定页面
// ==UserScript==
// @name bilibilipage B站up主投稿页面跳到指定页面
// @namespace http://tampermonkey.net/
// @version 2025-02-04-4
// @description bilibili改版up主投稿页面每次刷新会跳到第一页,这个可以保存跳到最后点击的页面。
// @author You
// @match https://space.bilibili.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=bilibili.com
// @grant none
// ==/UserScript==
(function () {
'use strict';
// 提取当前页面的mid (用户ID)
const mid = window.location.pathname.split('/')[1];
// 设置输入框所在的父元素选择器
const parentSelector = '.video-header__top'; // 假设这个类存在,需要插入输入框到这个类
// 查找按钮的选择器
const buttonSelector = '.vui_button.vui_button--no-transition.vui_pagenation--btn.vui_pagenation--btn-num';
// 创建 MutationObserver 来监听 DOM 变化
const observer = new MutationObserver(() => {
const parentElement = document.querySelector(parentSelector);
// 获取目标输入框
const inputElement = document.querySelector('.vui_input__input.vui_input__input-resizable');
// 如果找到目标输入框
if (inputElement) {
// 从localStorage获取保存的按钮数字,并区分不同mid
const savedButtonNumber = localStorage.getItem(`savedButtonNumber_${mid}`) || '0'; // 默认0
// 填充数字到输入框
inputElement.value = savedButtonNumber;
// 模拟回车确认
inputElement.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }));
//console.log('从localStorage获取的数字已填充并回车:', savedButtonNumber);
}
// 监听所有符合条件的按钮的点击事件
const buttonElements = document.querySelectorAll(buttonSelector);
buttonElements.forEach((buttonElement) => {
buttonElement.addEventListener('click', (event) => {
const buttonText = event.target.textContent.trim();
const buttonNumber = parseInt(buttonText, 10);
// 如果提取到有效的数字,则更新到 localStorage,区分mid
if (!isNaN(buttonNumber)) {
localStorage.setItem(`savedButtonNumber_${mid}`, buttonNumber);
//console.log('保存的按钮数字是:', buttonNumber);
}
});
});
});
// 观察整个 document.body,监听子节点变化
observer.observe(document.body, { childList: true, subtree: true });
})();