我一直在使用的CKEditor了一段时间,它一直很大。 我已经差不多摆脱了那Ive有任何问题,但是这一次我似乎无法弄清楚。 当我添加内嵌属性例如元素style = "color: #ff0;"
上的<p></p>
标签它们剥离出来时,我从所见即所得切换到源视图。 没有保存或提交完成和CKEditor的是已经添加到我的网站是我自己的脚本。 任何想法,以什么会导致此。 所有搜索结果我能找到对应这种情况发生在Drupal,但Drupal的似乎是这个问题并非在所有情况下的编辑器。 再次感谢!
Answer 1:
这感觉就像你正在使用的CKEditor 4.1+附带高级内容过滤器(ACF) 。 如果是这样,你需要指定config.allowedContent
和配置它让你的东西的工作。 您还可能有兴趣在config.extraAllowedContent
。
见这个答案的更多细节。
Answer 2:
为寻找一个简单的示例如何启用在CKEditor的附加标记,而不完全禁用ACF,这里是一个小片段:
CKEDITOR.replace( 'editor1', {
extraAllowedContent: 'style;*[id,rel](*){*}'
} );
extraAllowedContent这里使<style>
元件,允许所有两个附加属性(方括号中)( *
是一个通配符)已经允许的元素,允许任何类名的使用(*)
为他们,并允许任何内嵌样式使用{*}
Answer 3:
嗨,你可以轻松地停止ACF。 默认情况下,你的configaration是---
function ckeditor($name,$value='',$height=300){
return '<textarea name="'.addslashes($name).'">'.htmlspecialchars($value).'</textarea>
<script>$(function(){CKEDITOR.replace("'.addslashes($name).'",{});});</script>';
}
只需添加这在大括号:
allowedContent: true
现在你的配置是:
function ckeditor($name,$value='',$height=300){
return '<textarea name="'.addslashes($name).'">'.htmlspecialchars($value).'</textarea>
<script>$(function(){CKEDITOR.replace("'.addslashes($name).'",{allowedContent: true});});</script>';
}
Answer 4:
我面临着同样的问题,回答以下解决我的问题:
config.allowedContent = true;
config.extraAllowedContent = '*(*);*{*}';
config.extraAllowedContent = 'span;ul;li;table;td;style;*[id];*(*);*{*}';
Answer 5:
我有同样的问题,粘贴时块元素,块元素内部(里面AP粘贴某些属性的div),同时使用该方法,该方法是CK剥离不仅一些属性,但整个元素:
editor.insertHtml(html);
有什么解决的问题是使用此解决方法来代替:
editor.insertElement(CKEDITOR.dom.element.createFromHtml(html));
文章来源: CKEditor strips inline attributes