在动态添加的文本上使用内联CKEditor

时间:2013-09-04 14:08:24

标签: ckeditor

我正在构建一个使用javascript动态添加页面元素的网络应用,然后可以使用contentEditable="true"CKEditor进行修改。

目前,如果我使用contentEditable="true"向页面添加元素,则该元素是可编辑的,但CKEditor工具栏未显示。

我试过调用CKEDITOR.inlineAll(),但这似乎没有做任何事情。

如何在动态创建的元素上激活CKEditor内联编辑? (不刷新页面)。

编辑:我发现给元素一个ID(例如)someId并调用CKEDITOR.inline(someId)会产生预期的效果。但我不想为我的所有元素添加唯一ID。有没有办法在所有contentEditable元素上激活CKEditor?

1 个答案:

答案 0 :(得分:7)

CKEDITOR.inline接受原生DOM元素作为参数。无论您如何创建动态元素,如果您传递对该函数的引用,它都会将其转换为CKEditor实例。例如,假设您使用jQuery作为主框架:

// A dynamically created element.
var el = $( '<p contenteditable="true">I\'m editable!</p>' );

// Append the element to <body>.
$( 'body' ).append( el );

// CKEDITOR.inline accepts DOM element as parameter.
CKEDITOR.inline( el.get( 0 ) ); 

请参阅the fiddle