4

我正在构建一个 Web 应用程序,它使用 javascript 向页面动态添加元素,然后可以使用contentEditable="true"和进行编辑CKEditor

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

我试过打电话CKEDITOR.inlineAll(),但这似乎没有任何作用。

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

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

4

1 回答 1

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 ) ); 

小提琴

于 2013-09-05T08:08:42.833 回答