如何编写筛选器来替换文本而不是隐藏元素



我正在使用Ublock来源来改变我的页面外观并隐藏烦恼。

我想隐藏元素中的文本而不是过滤对象。它是一个具有特定高度的唯一类的 span 对象。它位于页面顶部,当隐藏元素时,页面的整个块向上移动,而其他对象则不会,使页面看起来很糟糕。 有没有办法在 ublock 原点编写一个过滤器,用空格替换对象内的文本?

<span class="unique-id">text to hide</span>

资源:

Ublock 静态过滤器维基 总部基地过滤器指南

怎么样:

yourWebsite.com##.unique-id:style(display: none !important)

我想隐藏元素中的文本而不是过滤对象。

<span class="unique-id">text to hide</span>

可以使用uBlock Origin中的replace-node-text.js scriptlet来做到这一点。 脚本的源代码在这里。

replace-node-text.js可用于用不同的文本替换任何元素的文本内容。 通过用空文本替换原始文本,它还可以根据需要删除文本。

因此,要从示例 HTML 中的 span 标记中删除文本内容,请使用以下 uBlock 规则之一:

[website hostname]##+js(replace-node-text, text, text to hide, "")

[website hostname]##+js(replace-node-text, text, text to hide)

[website hostname]##+js(rpnt, text, text to hide, "")

[website hostname]##+js(rpnt, text, text to hide)

"rpnt"是脚本的缩写名称。

这样做有几个注意事项: 首先,由于此脚本将"requiresTrust"设置为"true",因此您只能在设置中放置在uBlock Origin的"我的过滤器"选项卡的文本框中的规则中使用此脚本。 您不能将此脚本包的规则放在"筛选器列表"下加载的自定义列表中。

其次,我上面的示例规则将用"替换所有"要隐藏的文本"实例,其中文本是文本节点。 应该可以使过滤器目标更具体,但到目前为止,我只能让"文本"作为选择器。 在当前版本的官方"uBlock 过滤器 – 广告"列表中使用此脚本的规则都针对"脚本"选择器,没有文本选择器的规则。

相关内容

  • 没有找到相关文章

最新更新