Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 清理c中contentEditable创建的HTML#_C#_Javascript_Jquery_Html_Css - Fatal编程技术网

C# 清理c中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&nbsp;man</p> 然后在页

我编写了一个文档编辑器,它使用contentEditable创建HTML内容。在一些较大的文档中,语法风格似乎无处不在。这很可能是从写字板和早期版本的编辑器粘贴内容的结果

问题是,现在我留下了很多非常不一致的文档

一开始很正常。每行的简单
标记

<p>It is a truth</p>
<p>universally acknowledged</p>
<p>that a single&nbsp;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时也遇到了同样的问题

    我发现了这个免费的纯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>