CKEditor 4.4.5删除页面抛出html,如何防止?

时间:2015-01-07 13:29:47

标签: ckeditor

在CKEditor的先前版本(3.5)中,我能够输入:

<br style="page-break-after: always;" />  

但是,在升级到4.4.5之后,我注意到RTE不再显示来自Database列的这个HTML源代码,因此如果在其上重新保存带有此RTE的表单,则NULL将保存回数据库。似乎CKEditor出于某种原因剥离了这个HTML。

我该如何防止这种情况?

非常感谢。

编辑1

发现这个要添加到config.js:

    config.allowedContent = 'br {page-break-after}';

但不起作用,虽然它应该...... [/ p>

编辑2

Link for above config setting

编辑3

我可以尝试在HTML源视图中输入上面的HTML,但如果我切换HTML Source按钮,然后返回Source View,它现在就消失了。所以CKEditor出于某种原因剥离了这个HTML。

编辑4

删除现在无关紧要

编辑5

查看浏览器源我看到:

<textarea class="RuleRTE" cols="20" id="myCk" rows="2">&lt;br style=&quot;page-break-after: always;&quot; /&gt;  </textarea>

很明显,数据存在并被检索,但是转换后会阻止我在HTML源视图中看到它。

我现在发现这与&lt; p&gt; test&lt; / p&gt;无关。测试很好并且它也被转换,我想要防止它像页面中的普通HTML一样呈现。所以似乎CKEditor不喜欢这个标签???

编辑6:

删除现在与问题无关。

编辑7:

Debug JS:

<script type="text/javascript" language="javascript">

  var editor = CKEDITOR.replace('Content', {
    allowedContent: 'br[*]'
  });

  editor.on('instanceReady', function () {
    console.log(editor.filter.allowedContent);
  });

结果似乎表明allowedContent工作正常,但BR元素仍然不可见。

 [Object, Object]
 0: Object attributes: true 
 classes: null 
 elements: Object br: true

1 个答案:

答案 0 :(得分:1)

我怀疑您尝试修改allowedContent设置的方式存在语法或用法错误。尝试按照这些方式做一些更简单的事情:(在代码而不是配置文件中执行)

var your_ck_editor = CKEDITOR.replace( 'your_ck_element_id', {
    allowedContent: 'br[*]'
} );

br[*]设置应允许包含任何属性的任何<br />元素。

出于问题排查目的,请尝试以下操作:

console.log( your_ck_editor.filter.allowedContent );

如果此代码不适合您,请发布您用于设置CKEditor的所有代码以及console.log调用的输出。