您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Centralized menu system for AO3 userscripts
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/547682/1651232/AO3%3A%20Userscript%20Menu.js
// ==UserScript== // @name AO3: Userscript Menu Library // @namespace https://github.com/ao3-userscripts // @version 3.0 // @description Library for AO3 userscripts to register menu items in a unified menu. Use @require to include in your scripts. // @author Wolfbatcat // ==/UserScript== // Exposes window.AO3UserScriptMenu with a simple register API (function() { if (window.AO3UserScriptMenu) return; const menuItems = []; function createMenu() { const nav = document.querySelector('ul.primary') || document.querySelector('nav.primary') || document.querySelector('#dashboard ul.actions'); if (!nav) return; let container = document.getElementById('ao3-userscript-menu'); if (!container) { container = document.createElement('li'); container.className = 'dropdown'; container.id = 'ao3-userscript-menu'; const title = document.createElement('a'); title.href = '#'; title.textContent = 'Userscripts'; container.appendChild(title); const menu = document.createElement('ul'); menu.className = 'menu dropdown-menu'; container.appendChild(menu); // Insert into navigation const searchItem = nav.querySelector('li.search'); if (searchItem) { nav.insertBefore(container, searchItem); } else { nav.appendChild(container); } } renderMenu(); } function renderMenu() { const menu = document.querySelector('#ao3-userscript-menu ul.menu'); if (!menu) return; menu.innerHTML = ''; menuItems.forEach(item => { const li = document.createElement('li'); const a = document.createElement('a'); a.href = '#'; a.textContent = item.label; a.addEventListener('click', e => { e.preventDefault(); item.onClick(); }); li.appendChild(a); menu.appendChild(li); }); } window.AO3UserScriptMenu = { register: function(item) { if (!item || typeof item.label !== 'string' || typeof item.onClick !== 'function') return; menuItems.push(item); if (!document.getElementById('ao3-userscript-menu')) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', createMenu); } else { createMenu(); } } else { renderMenu(); } } }; })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址