自动处理动态加载内容,智能保持帖子展开状态
// ==UserScript==
// @name 知识星球帖子自动展开
// @namespace https://axutongxue.com/
// @version 0.4
// @license MIT
// @description 自动处理动态加载内容,智能保持帖子展开状态
// @author 无与伦比
// @match https://wx.zsxq.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 使用WeakSet记录已处理元素(内存安全)
const processed = new WeakSet();
// 智能点击控制器
function smartClick(element) {
// 三重安全校验
if (!element ||
getComputedStyle(element).display === 'none' ||
processed.has(element)) return;
// 通过按钮文本精准识别
const text = element.textContent.trim();
if (!/展[开示]/.test(text)) return;
// 执行模拟点击
element.dispatchEvent(new MouseEvent("click", {
bubbles: true,
cancelable: true,
view: window
}));
// 标记已处理(即使点击后变成"收起"按钮也不会重复操作)
processed.add(element);
}
// 主处理函数
function processExpanding() {
document.querySelectorAll('p.showAll').forEach(smartClick);
}
// 防抖观察器配置
let observerLock = false;
const observer = new MutationObserver(mutations => {
if (observerLock) return;
observerLock = true;
// 智能延迟处理
setTimeout(() => {
processExpanding();
observerLock = false;
}, 300); // 延迟时间适配主流SPA加载速度
});
// 初始化
window.addEventListener('load', () => {
// 首屏立即处理
processExpanding();
// 监听动态内容
observer.observe(document.body, {
childList: true,
subtree: true
});
// 针对单页应用的hashchange处理
window.addEventListener('hashchange', processExpanding);
});
// 保险策略(可选启用)
// window.addEventListener('scroll', () => {
// setTimeout(processExpanding, 500);
// });
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址