我想我已经阅读了大部分关于此问题的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> </p>
<span>
元素是字体图标。
非常感谢任何帮助。
修改 的
如果我在<span>
元素中添加一些文字(但我不想这样做),它会有效。
答案 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;