在DataTable

时间:2017-10-13 09:09:11

标签: jquery datatables ckeditor rich-text-editor richtext

我想在DataTable中显示富文本。文本使用CKEditor生成。我的DataTable使用jQuery进行渲染:

var myTable = $("#_table").DataTable(this.properties);

我提到官方论坛:Editor: Display Rich Text in Datatable,提供的解决方案有以下几点:

  

这可能是由编辑器服务器端库中内置的XSS protection引起的。如果您乐意允许编写脚本,则可以禁用该选项。

但我不知道如何禁用该属性。我尝试了各种方法,但都没有。

编辑1: 现在显示数据表的快照: enter image description here

编辑2: 在数据表中,文本以字符串格式显示:"<p><h1>abc</h1></p>"而不是<p><h1>abc</h1></p>

1 个答案:

答案 0 :(得分:1)

我能够弄清楚为什么数据表不能在rtf中显示数据。实际上,CKEditor以两种不同的格式生成文本:

  1. &lt;p&gt;&lt;s&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;This is a custom defined task. Now there are further details:&lt;\/strong&gt;&lt;\/em&gt;&lt;\/u&gt;&lt;\/s&gt;&lt;\/p&gt;\n\n&lt;ul&gt;\n\t&lt;li&gt;&lt;span style=\"color:#00ff00\"&gt;&lt;s&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;&lt;span style=\"background-color:#ff0000\"&gt;List this is the first&lt;\/span&gt;&lt;\/strong&gt;&lt;\/em&gt;&lt;\/u&gt;&lt;\/s&gt;&lt;\/span&gt;&lt;\/li&gt;\n\t&lt;li&gt;&lt;span style=\"font-size:24px\"&gt;&lt;s&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;This second.&lt;\/strong&gt;&lt;\/em&gt;&lt;\/u&gt;&lt;\/s&gt;&lt;\/span&gt;&lt;\/li&gt;\n\t&lt;li&gt;&lt;s&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;&lt;span style=\"background-color:#00ff00\"&gt;And maybe a third&lt;\/span&gt;&lt;\/strong&gt;&lt;\/em&gt;&lt;\/u&gt;&lt;\/s&gt;&lt;\/li&gt;\n&lt;\/ul&gt;
  2. 此处的HTML标记采用HTML实体的形式。

    1. "<p><s><u><em><strong>This is a custom goal having 3 parts:<\/strong><\/em><\/u><\/s><\/p>\n\n<ul>\n\t<li><span style=\"color:#0000cd\"><s><u><em><strong><span style=\"font-size:28px\"><span style=\"background-color:#ff8c00\">This is the first and the biggest.<\/span><\/span><\/strong><\/em><\/u><\/s><\/span><\/li>\n\t<li><span style=\"color:#ff8c00\"><s><u><em><strong><span style=\"font-size:28px\"><span style=\"background-color:#0000cd\">This is the second amd tte<\/span><\/span><\/strong><\/em><\/u><\/s><\/span><\/li>\n\t<li><span style=\"font-size:26px\"><span style=\"color:#ff8c00\"><s><u><em><strong><span style=\"background-color:#0000cd\">yisohckdskcnk<\/span><\/strong><\/em><\/u><\/s><\/span><\/span><\/li>\n<\/ul>"
    2. 此处的HTML标记已解析。

      同时从编辑器以两种形式生成数据。我使用jdbc从服务器获取数据并使用Jsoup(Remove HTML tags from a String)解析它。

      在默认表单中,第二种格式在rtf中呈现,而第一种格式编码为HTML标记,标记呈现为文本。通过使用Jsoup解析一次,First格式被编码为HTML标签并显示为rtf,而第二种格式被剥离其标签并显示为没有HTML标签的简单文本。

      所以,这实际上是CKEditor的异常(因为它生成两种不同格式的文本),而不是数据表。