CKEditor的条内联属性CKEditor的条内联属性(CKEditor strips inlin

2019-05-12 04:12发布

我一直在使用的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