如何处理网页上的所有可查看字符?

时间:2013-12-23 07:23:57

标签: javascript html dom

处理的一个示例是将所有字符更改为大写。在客户端处理之前,网页将完全加载。我只想处理网页上可见的字符。这意味着我不会触及不可见的HTML标签等。但是我需要改变来自非HTML源的输出,比如JavaScript document.write或PHP脚本,它们将字符发送到输出。

我正在考虑使用JS HTML DOM。这是一个好机制吗?寻找任何其他想法。

1 个答案:

答案 0 :(得分:1)

在最简单的情况下,您只关心提供给客户端的HTML,几乎所有语言都可以。但是,当您关心动态生成的内容时,您是对的 - 客户端DOM是唯一的方法。

基本上,这就是你要做的事情:

  1. 编写一个函数来递归遍历节点并转换nodeValue文本和CDATA节点。
  2. 连接mutation observer,检查文档子树中的childList更改。当带有addedNodes的记录进入时,请为列表中的每个节点运行上一个功能。
  3. 最后,对文档运行转换以修复已存在的任何内容。
  4. 请记住,变异观察者是DOM的一个相对较新的补充。如果您需要更多支持,可能需要添加一个回退到mutation events,但即使那些没有广泛的支持,也会显着降低性能。