在我正在开发的应用程序中,用户在文本框中输入HTML,以编辑其页面上的元素。在此阶段,用户可以添加任何种类的内容,甚至是损坏的HTML,以及一些文本节点。
为了确保我得到一些干净的代码,我这样做
var s = document.createElement('div');
s.innerHTML = content;
// loop over each node in s, and if text node is found, wrap in span.
content = s.innerHTML
此代码段的问题是内容是
<TD>Text</TD>
,我得到的结果是Text
,因为TD
中不能有DIV
。在所有情况下,是否都有获取有效内容的修补程序?
最佳答案
使用DOM进行操作的问题在于,您实际上并不需要完全正确的html,因为您添加了允许html成为代码段的条件。您需要更正某些格式错误的html,而另一些则不需要。
谷歌搜索了一下这个jQuery插件:http://www.davidpirek.com/blog/html-beautifier-jquery-plugin
但我不能保证。
我可能会同意Graham的意见,并建议HTML Tidy,因为它非常成熟且快速,即使您必须等待响应。
关于javascript - 使用JavaScript清理HTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8587395/