我使用 CKEditor 已经有一段时间了,效果很好。我几乎摆脱了我遇到的任何问题,但我似乎无法弄清楚这一点。当我向元素添加内联属性时,例如style = "color: #ff0;"
在<p></p>
标签上,当我从所见即所得切换到源视图时,它们会被剥离。没有保存或提交,并且 ckeditor 已添加到我的站点,这是我自己的脚本。关于什么会导致这种情况的任何想法。我能找到的所有搜索结果都与 Drupal 中发生的这种情况相对应,但 Drupal 似乎不是所有情况下的编辑器的问题。再次感谢!
问问题
30112 次
5 回答
35
感觉就像您使用的是高级内容过滤器 (ACF)附带的 CKEditor 4.1+ 。如果是这样,您需要指定config.allowedContent
并配置它以使您的工作正常。您可能还对config.extraAllowedContent
.
有关更多详细信息,请参阅此答案。
于 2013-04-02T07:19:36.047 回答
11
对于正在寻找有关如何在不完全禁用 ACF 的情况下在 CKEditor 中启用附加标记的简单示例的任何人,这里有一个简短的片段:
CKEDITOR.replace( 'editor1', {
extraAllowedContent: 'style;*[id,rel](*){*}'
} );
这里的extraAllowedContent启用<style>
元素,允许所有(*
是通配符)已经允许的元素的两个附加属性(在方括号中),允许(*)
为它们使用任何类名并允许使用任何内联样式{*}
于 2014-02-19T14:43:34.563 回答
5
您好,您可以轻松停止 ACF。默认情况下,您的配置是---
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>';
}
于 2014-03-13T07:10:23.160 回答
5
我遇到了同样的问题,下面的答案解决了我的问题:
config.allowedContent = true;
config.extraAllowedContent = '*(*);*{*}';
config.extraAllowedContent = 'span;ul;li;table;td;style;*[id];*(*);*{*}';
于 2017-03-30T11:43:33.167 回答
1
我遇到了同样的问题,在使用此方法时,ck 在粘贴块元素时,在块元素内(在 ap 中粘贴了一些属性的 div)不仅剥离了一些属性,而且剥离了整个元素:
editor.insertHtml(html);
解决问题的方法是使用此解决方法:
editor.insertElement(CKEDITOR.dom.element.createFromHtml(html));
于 2015-05-06T10:49:27.213 回答