自动折叠 NGA 版头/版规/置顶部分,需要的时候可以点击版头按钮显示(替换跳转功能)
// ==UserScript==
// @name         NGA 版头/版规/置顶部分折叠
// @namespace    https://gf.qytechs.cn/zh-CN/users/164691-shy07
// @version      0.20
// @description  自动折叠 NGA 版头/版规/置顶部分,需要的时候可以点击版头按钮显示(替换跳转功能)
// @author       Shy07
// @match        *://nga.178.com/*
// @match        *://bbs.ngacn.cc/*
// @match        *://bbs.nga.cn/*
// @grant        none
// jshint esversion:6
// ==/UserScript==
((ui, self) => {
  'use strict'
  if (ui === undefined) return
  const targetNode = document.querySelector('body')
  const config = {
    childList: true
  }
  let manualOpen = false
  const toggle = () => {
    const toppedTopic = document.querySelector('#toppedtopic')
    toppedTopic.style.display = manualOpen ? 'none' : 'block'
    manualOpen = !manualOpen
  }
  const hookClickEvent = () => {
    const el = document.querySelector('#toptopics a[class="block_txt block_txt_c0"]')
    if (el) {
      el.href = 'javascript:;'
      el.addEventListener('click', toggle)
    }
  }
  const hideToppedTopic = () => {
    const toppedTopic = document.querySelector('#toppedtopic')
    if (!manualOpen && toppedTopic) {
      toppedTopic.style.display = 'none'
    }
  }
  hideToppedTopic()
  hookClickEvent()
  // const observer = new MutationObserver((mutationsList, observer) => {
  //   hideToppedTopic()
  //   hookClickEvent()
  // })
  // observer.observe(targetNode, config)
  // 钩子
  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])
  }
  let initialized = false
  hookFunction(ui, 'eval', () => {
    if (initialized) return
    if (ui.topicArg) {
      hookFunction(
        ui.topicArg,
        'add',
        (returnValue, originalFunction, args) => {
          hideToppedTopic()
          hookClickEvent()
        }
      )
      initialized = true
    }
  })
})(commonui, __CURRENT_UID)
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址