1

我有一个 CMS 系统,它并排显示两个 CKEditor,以便用户可以编辑主体和侧边栏内容。两个编辑器共享相同的工具栏。

我添加了一个插件,允许用户将嵌入的数据添加到编辑器中。唯一的问题是我需要在当前选择的编辑器上显示数据,键盘光标当前正在设置。

如何使用 javascript 或 JQuery 获取在工具栏上按下按钮之前当前选择的 CKEditor 元素。

现在我只能通过直接选择特定的编辑器实例来让它工作。

CKEDITOR.instances.mtxDescription.insertHtml(data); 

但是,我需要能够将数据直接放入选择的任何编辑器中

4

3 回答 3

1

如果您正在创建 CKEditor 插件,那么您已经参考了它处于活动状态的编辑器,请查看有关如何创建 CKEditor 插件http://docs.cksource.com/CKEditor_3.x/Tutorials/Timestamp_Plugin的基本教程

editor.addCommand( 'insertTimestamp',
    {
        exec : function( editor )
        {    
            var timestamp = new Date();
            editor.insertHtml( 'The current date and time is: <em>' + timestamp.toString() + '</em>' );
        }
    });
于 2013-01-24T19:28:18.627 回答
0

我能够通过向每个编辑器添加一个模糊事件并存储最后一次调用事件的最后一个 id 来解决这个问题。

var currentEditorInstance = 'mtxDescription';   
for(name in CKEDITOR.instances) {
CKEDITOR.instances[name].on('blur', function () {
        currentEditorInstance = this.name;
});
}
于 2013-01-24T20:24:19.277 回答
0

我会在存在唯一 ID 的某个级别在编辑器包装器上放置一个类,然后是:

var myEditor = $(this).closest('.my-class').attr('id');
于 2013-01-24T17:15:28.347 回答