2013-04-02 82 views
18

我一直在使用CKEditor一段时间,它工作得很好。我几乎已经摆脱了任何问题,但我看不出这个问题。当我将内联属性添加到元素style = "color: #ff0;"<p></p>标签上时,当我从wysiwyg切换到源视图时,它们被剥离出来。没有保存或提交已完成,ckeditor已添加到我的网站,这是我自己的脚本。任何想法会导致什么。我发现的所有搜索结果都与Drupal中发生的情况相对应,但Drupal似乎不是所有情况下编辑器的问题。再次感谢!CKEditor带内联属性

+0

同样的编辑已经被配置为全页模式这允许我添加'',但内联属性仍然被剥离。 – tiantang

回答

28

感觉就像您使用的是Advanced Content Filter (ACF)附带的CKEditor 4.1+。如果是这样,您需要指定config.allowedContentconfigure it以使您的工作正常运行。您可能也有兴趣config.extraAllowedContent

有关更多详细信息,请参阅this answer

+1

链接显示中断。这些文档可以在http://docs.ckeditor.com/上找到。 – Nenotlep

+0

@Nenotlep链接似乎工作得很好。再试一次,并确认。 – oleq

+0

仍然无法正常工作。对我来说,所有的链接看起来像“http://ckeditor-docs.t/#!/ ...”,这显然失败了。 IE和Chrome。 – Nenotlep

8

为寻找在CKEditor的如何启用额外的标记一个简单的示例,而不完全禁用ACF,这里是一个简短的片段:

CKEDITOR.replace('editor1', { 
    extraAllowedContent: 'style;*[id,rel](*){*}' 
}); 

extraAllowedContent这里使<style>元素,允许两个附加属性(在方括号内)的所有(*是一个通配符)已经允许的元素,允许他们的任何类名(*)的使用,并允许任何内嵌样式{*}

4

嗨,你可以轻松地停止使用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>'; 
} 
+0

这与我合作!谢谢! – Phuong

1

我有同样的问题,即在使用这种方法时,ck不仅剥离了一些属性,而且还剥离了一个块元素内的块元素(在ap中粘贴了一些属性的div)内的所有元素:

editor.insertHtml(html); 

什么解决的问题是使用此解决方法来代替:

editor.insertElement(CKEDITOR.dom.element.createFromHtml(html)); 
2

我面临着同样的问题,回答以下解决我的问题:

config.allowedContent = true; 
config.extraAllowedContent = '*(*);*{*}'; 
config.extraAllowedContent = 'span;ul;li;table;td;style;*[id];*(*);*{*}';