CKEditor具有HTML内容存储,显示但无法显示以进行编辑

时间:2014-05-08 07:58:13

标签: ckeditor

我已经使用CKEditor几年而没有真正了解它。我现在想用它来显示包含HTML,CSS,JavaScript和PHP示例代码的文本。这些都不需要执行它只是为了向其他人显示代码。

目前我使用textarea替换方法来编辑内容,我需要继续这样做。当我第一次添加内容时,它会被清理(mysqli_real_escape_string)并正确存储在MySQL数据库中。然后它也可以正确显示,CKEditor标记用作标记,HTML / PHP显示为代码示例。但是,当我第二次编辑内容时,HTML示例变为真实的" HTML并且不再作为示例显示。

例如:

<?php echo "hello"; ?>
<p>Hello</p>

正确(?)存储为:

<p>&lt;?php echo "me"; ?&gt;</p>
<p>&lt;p&gt;Hello&lt;/p&gt;</p>

并显示在页面上,如第一个代码片段所示(这就是我想要的)。当我再次点击编辑时,代码示例作为真实的HTML(页面的一部分)消失在后台。如果我将代码示例放在代码片段中(由于目标用户我不想这样做),编辑器中的结果(第二次编辑)如下所示:

<!--?php echo "me"; ?-->
Hello

我确信我错过了对幕后发生的事情的基本了解,但任何人都可以解释如何允许用户输入包含HTML,CSS,JavaScript,PHP和MySQL代码示例的文本,这些示例必须显示为示例而非标记(并可作为示例进行编辑)。

我在一些研究之后玩过config.entities和config.protectedSource,但它们似乎并不相关(或工作)。奇怪的是,它似乎工作得很好,我认为我已经破解了它,但后来没有进一步更改配置就停止了。这意味着我现在不知道自己在做什么,而不是在我开始时!

1 个答案:

答案 0 :(得分:0)

您没有提到您正在使用的版本,但如果它相对较新(4.4+),您可以使用专为此设计的Code Snippets插件。请参阅http://ckeditor.com/demo#widgets上的演示。它也可能有助于编码问题。还有docs就可以了。

帮助解决当前的编码问题,如果您向我们展示了如何输出数据并将其加载到CKEditor中,那将会有所帮助。例如&#34;当我再次点击编辑&#34;没有上下文,没有真正描述任何东西。例如,你在AJAX中使用setData()吗?你使用内联编辑器吗?代码示例将是最好的。