5

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

没有 javascript 错误发生,但不幸的是所有工具都被禁用,我无法编辑文本。

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

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

4

6 回答 6

7

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

使用CKEDITOR.disableAutoInline = true;contenteditable="true"必须手动初始化所​​有元素才能成为编辑器实例。请参阅内联实例的官方指南

于 2013-03-28T09:24:04.497 回答
2

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

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

于 2013-03-28T08:35:21.260 回答
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)。

于 2014-08-18T19:36:45.847 回答
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

于 2015-09-30T20:31:14.067 回答
0

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

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

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

于 2015-11-11T00:37:08.027 回答
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 );
    });
}});
于 2016-09-15T11:48:29.507 回答