我发现我可以用onOk
挂钩:
editor.on('dialogShow', function (ev)
{
var name = ev.data.getName();
var definition = ev.data.definition;
if (name == 'image')
{
definition.onOk = function(e)
{
console.log( e );
};
}
});
太棒了,除非现在删除了默认行为,导致没有图像被添加到CK内容中。
正在检查CK's source,我不想破坏默认提供的74行功能。
我的目标是在附加后通过回调运行图像。
是复制/粘贴,修改保留扩展功能的唯一方法,还是有另一种方式?
答案 0 :(得分:8)
maximkou解决方案的小改进:
var oldImplementation = definition.onOk;
definition.onOk = function( e ) {
oldImplementation.apply( this, [].slice.call( arguments ) );
console.log( e );
};
这个解决方案是好的,AFAIK是最干净的。
更新:我找到了一个更好的解决方案 - 我刚学到的dialog#ok
事件:)。所以你不需要改变对话框的定义 - 你可以像这样绑定你的事件监听器:
editor.on('dialogShow', function ( evt ) {
if ( evt.data.getName() == 'image' ) {
var listener = evt.data.on( 'ok', function() {
console.log( 'ok!' );
} );
// We need to remove that listener, to avoid duplicating it on
// next dialogShow.
evt.data.on( 'hide', function() {
listener.removeListener();
} );
}
} );
答案 1 :(得分:2)
var oldImplementation = definition.onOk;
definition.onOk = function(e)
{
oldImplementation(e);
console.log( e );
};