您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Remove <p> </p> from specific blog area on pokepara.jp
// ==UserScript== // @name Quick Reader for Pokepara // @namespace http://tampermonkey.net/ // @version 1.1 // @description Remove <p> </p> from specific blog area on pokepara.jp // @author Suniki // @match https://www.pokepara.jp/* // @grant none // @license GPL // ==/UserScript== (function () { "use strict"; const targetSelector = "#galblog div.wrap div.blog"; const applyShrinkStyle = (p) => { if (p.textContent.trim() === "") { p.style.lineHeight = "5%"; } }; const processParagraphs = (container) => { const paragraphs = container.querySelectorAll("p, div, span"); paragraphs.forEach(applyShrinkStyle); }; const initObserver = (targetNode) => { const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { mutation.addedNodes.forEach((node) => { if (node.nodeType === Node.ELEMENT_NODE) { if (node.matches("p") || node.matches("div") || node.matches("span")) { applyShrinkStyle(node); } else if (node.querySelectorAll) { processParagraphs(node); } } }); } }); observer.observe(targetNode, { childList: true, subtree: true, }); // 初期状態でも一度処理 processParagraphs(targetNode); }; const waitForTarget = () => { const el = document.querySelector(targetSelector); if (el) { initObserver(el); } else { // DOM にまだない場合は再試行 const interval = setInterval(() => { const el = document.querySelector(targetSelector); if (el) { clearInterval(interval); initObserver(el); } }, 500); } }; waitForTarget(); })();