我目前正在尝试向某些文本添加内联 ckeditor。
没有 javascript 错误发生,但不幸的是所有工具都被禁用,我无法编辑文本。
http://fiddle.jshell.net/5LuyD/
任何人都知道我做错了什么?
我目前正在尝试向某些文本添加内联 ckeditor。
没有 javascript 错误发生,但不幸的是所有工具都被禁用,我无法编辑文本。
http://fiddle.jshell.net/5LuyD/
任何人都知道我做错了什么?
您缺少的是contenteditable="true"
元素的属性。如果您想自定义编辑器(即通过 运行CKEDITOR.inline( element, cfg )
),CKEDITOR.disableAutoInline = true;
请先设置。
使用CKEDITOR.disableAutoInline = true;
,contenteditable="true"
必须手动初始化所有元素才能成为编辑器实例。请参阅内联实例的官方指南。
您错过了可编辑标签的 contenteditable="true" 属性!
对于尽管设置了这个问题的任何人,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)。
我刚刚遇到了同样的问题,我发现了一个不同的解决方法。如果父元素(或元素本身)最初设置为 display:none,则 contenteditable 将 = false(在 chrome 上)。
这个修复对我有用:
var ck = CKEDITOR.inline(element);
ck.on('instanceReady', function(event) {
var editor = event.editor;
editor.setReadOnly(false);
});
我遇到了同样的问题,其他建议的解决方案都没有奏效。
问题是 div 的 id 属性以数字字符开头(它是一个 GUID)。将 id 更改为以字母字符开头有效:所有编辑器按钮均已启用。
出于某种原因,ckEditor 不喜欢以数字字符开头的 id。
$(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 );
});
}});