使用油脂/夯实键(或其他扩展)来省略web元素中的某些字符

Using grease/tampermonkey (or another extension) to omit certain characters inside web elements

本文关键字:web 元素 字符 扩展 油脂 其他      更新时间:2023-09-26

首先,如果我的术语不是最准确的,我深表歉意;说到编程,我是个新手。作为一些推广的一部分,我经常使用的一个论坛在页面上添加了一堆不必要的"故障"图像和文本,但结果是该论坛现在很难使用和阅读。我可以使用adblock来编写大部分内容,但论坛元素本身还有最后一个部分,adblock想删除整个元素(这会破坏论坛)。这是有问题的代码的一部分,URL已更改:

<td class="windowbg" valign="middle" width="42%">&blk34;&blk34;&blk34;&blk34;&blk34;
        <a href="http://www.example.com">Thread title</a>  <span class="smalltext"></span><img src="example.com/forumicon.gif"></td>

正如您所看到的▓这个角色莫名其妙地出现了很多次。有没有办法让我的浏览器在元素内部忽略这个字符?如果有一种使用AdBlock的方法可以做到这一点,我还不够聪明。

这里有一种方法,使用NodeIterator:

var iter = document.createNodeIterator( document.body, NodeFilter.SHOW_TEXT );
var node;
while (node = iter.nextNode()) {
    node.textContent = node.textContent.replace( /['u2580-'u259f]+/g, '' );
}

这只是一个简单的JavaScript代码;您可以将其粘贴到Firefox/Chrome JS控制台中进行测试。regexp /['u2580-'u259f]+/匹配"Block Elements"Unicode块中的任何字符序列,包括U+2593 Dark Shade(▓;)。您可能需要调整正则表达式以匹配要删除的字符。(提示:如果你不知道这些字符的代码是什么,请将它们复制并粘贴到本页的"UTF8字符串"框中。)

Ps。如果这些要删除的字符只出现在文档的某个部分,则可以通过将根节点(上面的document.body)替换为要删除字符的特定DOM节点来提高代码的效率。要找到所需的节点,可以使用例如document.getElementById(),或者更常见的document.querySelector()(甚至document.querySelectedAll()并循环结果)。