CKEditor 4.2.2 - allowedContent = true不起作用

时间:2013-11-14 00:13:46

标签: javascript ckeditor config

我想我已经阅读了大部分关于此问题的SO问题和CKEditor文档,但它对我不起作用。

它应该简单明了,在我的CKEditor config.js中,我有这个:

CKEDITOR.editorConfig = function(config) {
    config.allowedContent = true;
};

但html仍然被过滤掉了,这段代码被剥离了:

<p>
<a href="/site/public/press.pdf"><span class="icon-presseFile"></span></a>
<a href="/site/public/pics.zip"><span class="icon-pressePics"></span></a>
</p>

进入这个:

<p>&nbsp;</p>

<span>元素是字体图标。

非常感谢任何帮助。

修改 的 如果我在<span>元素中添加一些文字(但我不想这样做),它会有效。

6 个答案:

答案 0 :(得分:14)

我发现我必须将它添加到主配置功能的外部。

这有效:

CKEDITOR.editorConfig = function( config ) {
...
};
CKEDITOR.config.allowedContent = true;

但这不是:

CKEDITOR.editorConfig = function( config ) {
    config.allowedContent = true;
    ...
};

答案 1 :(得分:7)

请注意,它可能是一个流氓插件,导致config.allowedContent = true被忽略。 I just learned this at a cost of 12 hours of my life

有问题的插件会在自定义配置文件中覆盖config.allowedContent = true。因此,如果您正在撞击CKEditor上的墙壁,请尝试禁用/注释掉所有插件(config.extraPlugins)。如果问题消失,你知道其中一个插件是原因。

答案 2 :(得分:1)

此解决方案帮助我解决了我的问题:CKEditor strips <i> Tag

对于我在config.js中写的范围:

// ALLOW <span></span>
config.protectedSource.push( /<span[\s\S]*?\>/g ); //allows beginning <span> tag
config.protectedSource.push( /<\/span[\s\S]*?\>/g ); //allows ending </span> tag

答案 3 :(得分:0)

我在使用Firefox时遇到了同样的问题。 要解决这个问题,我必须将config.js文件的名称更改为ckeConfig.js之类的其他名称并声明新名称:

CKEDITOR.replace("textAreaId", {
    customConfig: 'yourPath/ckeditor/ckeConfig.js', 
});

并且不要忘记在Html中链接:

<script src="~/yourPath/ckeditor/ckeditor.js"></script>
<script src="~/yourPath/ckeditor/ckeConfig.js"></script>

答案 4 :(得分:0)

尝试一下:
CKEDITOR.replace('instanceName',{extraAllowedContent:'a span'});

您可以在不希望更改的extraAllowedContent字符串中放置任何标签。

答案 5 :(得分:0)

将其添加到 CKEDITOR.editorConfig 函数中对我有用:

config.allowedContent = true; CKEDITOR.dtd.$removeEmpty = false;