// ==UserScript== // @name NGA Auto Pagerize // @namespace https://greasyfork.org/users/263018 // @version 1.1.2 // @author snyssss // @description 简单的自动翻页 // @match *://bbs.nga.cn/* // @match *://ngabbs.com/* // @match *://nga.178.com/* // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_getValue // @noframes // @downloadURL none // ==/UserScript== ((ui) => { if (!ui) return; // KEY const ATTACHMENT_STYLE_ENABLE_KEY = "ATTACHMENT_STYLE_ENABLE"; // 附件样式 const attachmentStyleEnable = GM_getValue(ATTACHMENT_STYLE_ENABLE_KEY) || false; // 钩子 const hookFunction = (object, functionName, callback) => { ((originalFunction) => { object[functionName] = function () { const returnValue = originalFunction.apply(this, arguments); callback.apply(this, [returnValue, originalFunction, arguments]); return returnValue; }; })(object[functionName]); }; // 翻页 if (ui.pageBtn) { const execute = (() => { const observer = new IntersectionObserver((entries) => { if (entries[0].intersectionRatio > 0) { ui.loadReadHidden(0, 2); } }); return () => { const anchor = document.querySelector('[title="加载下一页"]'); if (anchor) { observer.observe(anchor); } else { observer.disconnect(); } }; })(); hookFunction(ui, "pageBtn", execute); execute(); } // 附件样式 if (ui.topicArg && attachmentStyleEnable) { const execute = () => { const elements = document.querySelectorAll('[title="主题中有附件"]'); elements.forEach((element) => { element.className = "block_txt white nobr vertmod"; element.style = "background-color: #BD7E6D"; element.innerHTML = "附件"; }) }; hookFunction(ui.topicArg, "loadAll", execute); execute(); } if (attachmentStyleEnable) { GM_registerMenuCommand('附件样式:启用', () => { GM_setValue(ATTACHMENT_STYLE_ENABLE_KEY, false); location.reload(); }); } else { GM_registerMenuCommand('附件样式:禁用', () => { GM_setValue(ATTACHMENT_STYLE_ENABLE_KEY, true); location.reload(); }); } })(commonui);