我想在DataTable中显示富文本。文本使用CKEditor生成。我的DataTable使用jQuery进行渲染:
var myTable = $("#_table").DataTable(this.properties);
我提到官方论坛:Editor: Display Rich Text in Datatable,提供的解决方案有以下几点:
这可能是由编辑器服务器端库中内置的XSS protection引起的。如果您乐意允许编写脚本,则可以禁用该选项。
但我不知道如何禁用该属性。我尝试了各种方法,但都没有。
编辑2:
在数据表中,文本以字符串格式显示:"<p><h1>abc</h1></p>"
而不是<p><h1>abc</h1></p>
。
答案 0 :(得分:1)
我能够弄清楚为什么数据表不能在rtf中显示数据。实际上,CKEditor以两种不同的格式生成文本:
<p><s><u><em><strong>This is a custom defined task. Now there are further details:<\/strong><\/em><\/u><\/s><\/p>\n\n<ul>\n\t<li><span style=\"color:#00ff00\"><s><u><em><strong><span style=\"background-color:#ff0000\">List this is the first<\/span><\/strong><\/em><\/u><\/s><\/span><\/li>\n\t<li><span style=\"font-size:24px\"><s><u><em><strong>This second.<\/strong><\/em><\/u><\/s><\/span><\/li>\n\t<li><s><u><em><strong><span style=\"background-color:#00ff00\">And maybe a third<\/span><\/strong><\/em><\/u><\/s><\/li>\n<\/ul>
此处的HTML标记采用HTML实体的形式。
"<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>"
此处的HTML标记已解析。
同时从编辑器以两种形式生成数据。我使用jdbc
从服务器获取数据并使用Jsoup(Remove HTML tags from a String)解析它。
在默认表单中,第二种格式在rtf中呈现,而第一种格式编码为HTML标记,标记呈现为文本。通过使用Jsoup
解析一次,First格式被编码为HTML标签并显示为rtf,而第二种格式被剥离其标签并显示为没有HTML标签的简单文本。
所以,这实际上是CKEditor的异常(因为它生成两种不同格式的文本),而不是数据表。