您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
监听动态生成的div.group-list元素并应用网格布局
// ==UserScript== // @name B站添加收藏面板优化 // @namespace http://tampermonkey.net/ // @version 0.4 // @description 监听动态生成的div.group-list元素并应用网格布局 // @author 你的名字 // @match https://www.bilibili.com/* // @match https://m.bilibili.com/* // @match https://www.bilibili.com/video/* // @match https://m.bilibili.com/video/* // @grant GM_addStyle // @grant GM_log // ==/UserScript== (function () { "use strict"; // 增强调试日志 GM_log("脚本开始执行 - 版本0.4"); console.group("[B站收藏优化] 初始化"); console.log("当前URL:", location.href); console.log("用户代理:", navigator.userAgent); console.groupEnd(); // 定义样式函数 function applyGridStyles() { const css = ` .collection-m-exp { width: 90vw !important; height: 90vh !important; } .collection-m-exp .content { height: 85% !important; overflow: hidden !important; } .collection-m-exp .group-list ul { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important; gap: 10px !important; padding: 10px !important; } .collection-m-exp .content .group-list li { padding-bottom: 0px; } .fav-title { max-width: 70px; } .group-list { max-height: 100% !important; overflow: auto; /* 关键属性:内容超出时显示滚动条 */ } .collection-m-exp .content .group-list li input[type='checkbox'] + i { margin-right: 0px !important; } `; GM_addStyle(css); console.log("[样式] 网格样式已应用"); } // 主逻辑 function main() { console.group("[主逻辑]"); try { applyGridStyles(); // 检查现有元素 const existing = document.querySelector( ".collection-m-exp .group-list ul" ); if (existing) { console.log("[元素] 找到现有收藏面板"); return; } // 设置MutationObserver const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes.length) { const target = document.querySelector( ".collection-m-exp .group-list ul" ); if (target) { console.log("[元素] 检测到动态加载的收藏面板"); observer.disconnect(); } } }); }); observer.observe(document.body, { childList: true, subtree: true, }); console.log("[监听] 已开始监听DOM变化"); } catch (e) { console.error("[错误]", e); } finally { console.groupEnd(); } } // 初始化 if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", () => { console.log("[事件] DOM已加载"); main(); }); } else { console.log("[状态] DOM已就绪"); main(); } // 点击事件监听 document.addEventListener("click", (e) => { const btn = e.target.closest(".collect-btn, .ops-collect"); if (btn) { console.log("[事件] 检测到收藏按钮点击"); setTimeout(main, 300); // 延迟执行确保弹窗加载 } }); })();