我目前正在尝试在某些文本中添加内联ckeditor。
没有javascript错误,但很遗憾,所有工具都被禁用,我无法编辑文本。
http://fiddle.jshell.net/5LuyD/
任何人都知道我做错了什么?
答案 0 :(得分:7)
您缺少的是元素的contenteditable="true"
属性。如果您想要自定义编辑器(即通过CKEDITOR.inline( element, cfg )
运行),请先设置CKEDITOR.disableAutoInline = true;
。
使用CKEDITOR.disableAutoInline = true;
时,必须手动初始化所有contenteditable="true"
元素才能成为编辑器实例。有关内联实例,请参阅official guide。
答案 1 :(得分:2)
你错过了contenteditable =" true"可编辑标签的属性!
答案 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);
});
答案 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 );
});
}});