// ==UserScript== // @name 移除笔趣阁多余的空格 // @namespace http://www.biquxs.com/ // @version 0.2 // @description Remove consecutive   and
elements on biquxs.com // @author zsjng // @match http://www.biquxs.com/* // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 获取所有文本节点 function getAllTextNodes(element) { var walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false); var nodes = []; while (walker.nextNode()) { nodes.push(walker.currentNode); } return nodes; } // 替换连续的8个 为一个空格 function replaceConsecutiveNbsp() { var textNodes = getAllTextNodes(document.body); for (var i = 0; i < textNodes.length; i++) { var textNode = textNodes[i]; textNode.nodeValue = textNode.nodeValue.replace(/(\u00A0){8}/g, ' '); } } // 移除
下的所有
元素 function removeBrElementsInContent() { var contentDivs = document.querySelectorAll('div.content'); for (var i = 0; i < contentDivs.length; i++) { var contentDiv = contentDivs[i]; var brElements = contentDiv.querySelectorAll('br'); for (var j = 0; j < brElements.length; j++) { var brElement = brElements[j]; brElement.parentNode.removeChild(brElement); } } } // 页面加载完成后执行替换和移除操作 window.addEventListener('load', function() { replaceConsecutiveNbsp(); removeBrElementsInContent(); }); // 在页面变化时,例如异步加载内容时,继续执行替换和移除操作 var observer = new MutationObserver(function() { replaceConsecutiveNbsp(); removeBrElementsInContent(); }); observer.observe(document.body, { subtree: true, childList: true }); })();