C# 清理c中contentEditable创建的HTML#
我编写了一个文档编辑器,它使用contentEditable创建HTML内容。在一些较大的文档中,语法风格似乎无处不在。这很可能是从写字板和早期版本的编辑器粘贴内容的结果 问题是,现在我留下了很多非常不一致的文档 一开始很正常。每行的简单C# 清理c中contentEditable创建的HTML#,c#,javascript,jquery,html,css,C#,Javascript,Jquery,Html,Css,我编写了一个文档编辑器,它使用contentEditable创建HTML内容。在一些较大的文档中,语法风格似乎无处不在。这很可能是从写字板和早期版本的编辑器粘贴内容的结果 问题是,现在我留下了很多非常不一致的文档 一开始很正常。每行的简单标记 <p>It is a truth</p> <p>universally acknowledged</p> <p>that a single man</p> 然后在页
标记
<p>It is a truth</p>
<p>universally acknowledged</p>
<p>that a single man</p>
然后在页面下方大约3/4处,我们得到了这个。它似乎已恢复为
标记,但现在将它们随机嵌入带有空lang
属性的
标记中
<div>
<span lang="">
<p>It was the best of times,</p>
<p>it was the worst of times,</p>
</span>
<p>it was the age of wisdom,</p>
<p>it was the age of foolishness,</p>
</div>
这是最好的时光,
这是最糟糕的时期,
那是智慧的时代
那是愚蠢的年代
注意:一些行在
内,其他行在外
更糟糕的是,稍后我们会得到嵌套的
标记
<span lang="">
<div>
<span lang="EN-GB">
<p>Stately, plump </p>
<p>Buck Mulligan came </p>
<span lang="EN-GB">
<p>from the stairhead, </p>
<p>bearing a bowl of lather </p>
<span lang="EN-GB">
<p> on which a mirror and a razor lay crossed</p>
</span>
</span>
</span>
</div>
</span>
庄严、丰满
巴克·穆利根来了
从楼梯口
带着一碗泡沫
上面有一面镜子和一把剃刀
您还可能会注意到
和
标记的父代现在从一开始就颠倒了,
现在是
的子代
我注意到了其他的怪事<代码>在开始时使用,但随后使用
标记包围孤立行
标记的
标记?如何避免在文档中留下孤立文本李>
这是一个很难回答的问题,我在编辑文本中的HTML时也遇到了同样的问题 我发现了这个免费的纯HTML+JS编辑器:TinyMCE 其中包括清理文本选项,您可以从文本中选择要清理的标记
如果您有机会更改正在使用的编辑器,它将非常强大。t在一个优秀的html编辑器中使用。我通常在asp.net webforms中使用CKEditor。它有很好的用户控制。尽管如此,它们都是很棒的HTML编辑器。我的小贴士:禁用它们的粘贴html功能,这可以避免很多麻烦。
<span lang="">
<div>
<span lang="EN-GB">
<p>Stately, plump </p>
<p>Buck Mulligan came </p>
<span lang="EN-GB">
<p>from the stairhead, </p>
<p>bearing a bowl of lather </p>
<span lang="EN-GB">
<p> on which a mirror and a razor lay crossed</p>
</span>
</span>
</span>
</div>
</span>