如何在CKEditor中收听基本事件?

时间:2011-04-19 19:56:15

标签: javascript html ckeditor

我无法弄清楚如何在ckeditor中收听焦点,点击,onKeyUp和其他基本dom事件。在events summary中,只有少数关于ckeditor生命周期的事件。 ckeditor的“textArea”是一个iframe,它本身就是html,所以不清楚要监听什么dom节点。

2 个答案:

答案 0 :(得分:27)

这不是什么大问题,只需执行以下操作,适用于焦点,模糊,点击等。

var ckeditor = CKEDITOR.instances['textArea_id'];
ckeditor.on('focus', fnHandler, context, data, priority);

或jQuery示例:

$(document).ready(function () {
    $('#YOUR_TEXTAREA_ID').ckeditor(ckeditor_config);

    CKEDITOR.instances.YOUR_TEXTAREA_ID.on('blur', fnHandler);
});

我不知道这个支持何时出现,但它肯定适用于3.5.x

答案 1 :(得分:8)

CKEditor实际上在对象中有内置的事件处理。请参阅此文章以获取解释:http://alfonsoml.blogspot.com/2009/09/ckeditor-events.html

因此,要在CKEditor实例中捕获修改,您可以这样做:

CKEDITOR.on('currentInstance', function(){modified = true;});

此外,版本3似乎内置了一个事件处理器,它更直接:http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.file.html#eventProcessors

CK有点复杂,文档有漏洞,但基于它能够优雅地处理Word生成的HTML,它使我的投票成为最佳选择。