使用油脂/夯实键(或其他扩展)来省略web元素中的某些字符
Using grease/tampermonkey (or another extension) to omit certain characters inside web elements
首先,如果我的术语不是最准确的,我深表歉意;说到编程,我是个新手。作为一些推广的一部分,我经常使用的一个论坛在页面上添加了一堆不必要的"故障"图像和文本,但结果是该论坛现在很难使用和阅读。我可以使用adblock来编写大部分内容,但论坛元素本身还有最后一个部分,adblock想删除整个元素(这会破坏论坛)。这是有问题的代码的一部分,URL已更改:
<td class="windowbg" valign="middle" width="42%">▓▓▓▓▓
<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()并循环结果)。
相关文章:
- 如何在另一个 html 标签内选择 web 元素硒 Web 驱动程序与 html 源
- Web元素未在中国显示
- 没有这样的元素:找不到元素:正在验证web元素是否丢失
- 无法使用nightwatchjs突出显示web元素
- 无法使用 js 和 Selenium 设置 Web 元素状态“已选择”
- 使用油脂/夯实键(或其他扩展)来省略web元素中的某些字符
- 如何动态生成web元素的src属性
- 由于promise,Protractor无法将变量与web元素进行比较
- 验证web元素是否可以与交互
- Selenium使用Xpath读取隐藏web元素的文本
- 将动态web元素值传递给Javascript方法,以便在HTML5中执行拖放操作
- 如何从谷歌新的Iframe删除谷歌Web元素
- 使用带量角器的phantomjs访问iframe内的web元素
- WebdriverJS wait()返回一个web元素吗?
- 使用JavascriptExecutor来sendKeys + click on web元素
- 如何检查导致web元素对Python Selenium不可见的原因
- 使用jQuery在页面加载时淡入web元素
- 如何使用SeleniumWebdriver处理从DOM中删除的web元素
- 在加载时将(缓存?)web元素转移到新页面
- 如何在控制台中打印web元素的值