图像对话框-扩展onOk,而不是完全覆盖
Image dialog — extend onOk, instead of total overwrite
我发现我可以用这个钩到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的源代码,我不想破坏默认提供的74行功能。
我的目标是简单地通过一个回调运行图像后,它已被追加。
复制/粘贴、修改是保留扩展功能的唯一方法,还是有其他方法?
maximkou解的小改进:
var oldImplementation = definition.onOk;
definition.onOk = function( e ) {
oldImplementation.apply( this, [].slice.call( arguments ) );
console.log( e );
};
这个解是好的,而且我敢说它是最干净的。
更新:我已经找到了一个更好的解决方案-有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();
} );
}
} );
var oldImplementation = definition.onOk;
definition.onOk = function(e)
{
oldImplementation(e);
console.log( e );
};
相关文章:
- 着色引导框对话框
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- CKeditor:更改对话框中的默认选择选项
- 搜索api在mac上显示对话框
- jQuery UI模式对话框覆盖淡出
- 用对话框覆盖文本输入
- 覆盖对话框悬停事件
- 如何使用jQuery中的覆盖对话框来获取反馈表单
- 如何防止引导模式对话框的背景覆盖整个屏幕
- 动态覆盖jqueryUI对话框按钮(保存,取消等到用户选择)文本
- Webdriver 为模态对话框(这是覆盖)抛出 Nosuchemelent 异常
- 如何从外部关闭非模式覆盖对话框
- 打开覆盖(模态对话框)jquery工具在页面加载
- 图像对话框-扩展onOk,而不是完全覆盖
- 取消与聚合物芯覆盖的对话框
- 增加标题栏和其他元素'宽度以覆盖整个JQuery对话框
- 如何显示一个javascript:弹出对话框的顶部覆盖,以阻止父页面
- 关闭jQuery UI对话框上的覆盖点击
- 如何在不覆盖的情况下连续打开对话框
- 对话框覆盖无限扩大的高度在Facebook只有