内联Ckeditor:禁用所有按钮

时间:2013-03-27 23:40:53

标签: javascript ckeditor

我目前正在尝试在某些文本中添加内联ckeditor。

没有javascript错误,但很遗憾,所有工具都被禁用,我无法编辑文本。

http://fiddle.jshell.net/5LuyD/

任何人都知道我做错了什么?

6 个答案:

答案 0 :(得分:7)

您缺少的是元素的contenteditable="true"属性。如果您想要自定义编辑器(即通过CKEDITOR.inline( element, cfg )运行),请先设置CKEDITOR.disableAutoInline = true;

使用CKEDITOR.disableAutoInline = true;时,必须手动初始化所​​有contenteditable="true"元素才能成为编辑器实例。有关内联实例,请参阅official guide

答案 1 :(得分:2)

你错过了contenteditable =" true"可编辑标签的属性!

这是小提琴。 http://fiddle.jshell.net/5LuyD/1/

答案 2 :(得分:2)

对于遇到此问题而设置contenteditable="true"的任何人,Chrome存在问题,如果元素(或父元素)不可见,则contenteditable设置为false。

请参阅:http://ckeditor.com/forums/CKEditor/Solved-Chrome-Toolbar-buttons-grayed-out-for-INLINE-editor

解决方法是:a)确保元素在调用CKEDITOR.inline()之前可见或b)使用textarea而不是contenteditable元素(在这种情况下,CKE在textarea之后添加一个contenteditable div)。

答案 3 :(得分:1)

我遇到了同样的问题,我发现了一个不同的解决方案。如果父元素(或元素本身)最初设置为display:none,则contenteditable将= false(在chrome上)。

此修复程序对我有用:

var ck = CKEDITOR.inline(element);
ck.on('instanceReady', function(event) {
     var editor = event.editor;
     editor.setReadOnly(false);
});

参考:https://dev.ckeditor.com/ticket/9814

答案 4 :(得分:0)

我遇到了同样的问题,并且没有其他建议的解决方案有效。

问题是div的id属性以数字字符开头(它是GUID)。将id更改为以alpha字符开头:所有编辑器按钮都已启用。

出于某种原因,ckEditor不喜欢以数字字符开头的id。

答案 5 :(得分:0)

$(document).ready(function(){
    for(var i in CKEDITOR.instances) {
                var ck=CKEDITOR.instances[i]; 
                ck.on( 'instanceReady', function( ev ) {
                 var editor = ev.editor;
             editor.setReadOnly( false );
    });
}});