2
处理的一个示例是将所有字符更改为大写。网页将在客户端处理之前完全加载。我只想处理网页上可见的字符。这意味着我不会触及不可查看的HTML标签等。但是我需要修改非HTML源代码的输出,比如JavaScript document.write
或者PHP脚本,它们会发送字符到输出。如何处理网页上的所有可查看字符?
我想使用JS HTML DOM。这是一个好机制吗?寻找任何其他的想法。
处理的一个示例是将所有字符更改为大写。网页将在客户端处理之前完全加载。我只想处理网页上可见的字符。这意味着我不会触及不可查看的HTML标签等。但是我需要修改非HTML源代码的输出,比如JavaScript document.write
或者PHP脚本,它们会发送字符到输出。如何处理网页上的所有可查看字符?
我想使用JS HTML DOM。这是一个好机制吗?寻找任何其他的想法。
在最简单的情况下,只关心发送给客户端的HTML,几乎所有的语言都可以。但是,当你关心动态生成的内容时,你是对的 - 客户端DOM是唯一的出路。
从本质上讲,这里是你应该做的事情:
CDATA
节点的nodeValue
。childList
文档子树中的更改。当带有addedNodes
的记录进入时,为列表中的每个节点运行上一个函数。请记住,突变观察者是DOM的一个相对较新的添加。如果您需要更多的支持,您可能需要添加一个回退到mutation events,但即使那些没有广泛的支持,和他们会显着降低性能。
对于这个特定的例子,CSS可能是一个很好的方法。应用CSS规则'* {text-transform:uppercase!important; ''达到了预期的效果。对于其他转换,CSS可能不会是一个选项。 – icktoofay
谢谢,但正如你猜对的,我正在寻找一个通用的解决方案。例如,如果我正在使用JS来完成这项工作,则广义解决方案将简单地调用一个函数transform()。函数transform()将文本转换为大写或别的东西。 – sm535