如何为 CKFinder 创建重命名后或删除后事件挂钩
How to create a post-rename or post-delete event hook for CKFinder?
如果需要在 CKFinder 中删除或重命名文件,我需要编辑内容并通知用户各种事情。我想我可以创建一个JavaScript解决方案,然后用一些简单的AJAX将逻辑卸载到后端,如下所示:
CKFinder.on('successfulFileRename', function(event, oldpath, newpath) {
// Contact backend, see where file was used, inform user etc etc
});
但是,可惜,我找不到任何事件系统。我将如何为 CKFinder 实现此功能?我需要的事件是文件/文件夹 - 重命名/删除/移动。它不一定是前端解决方案,但为了简单起见,我更喜欢它。我的后端是 ASP.net MVC3。
(欢迎 CKF 的替代方案作为评论,但它们需要与它相同的功能。
浏览文档时,我也无法找到任何像扩展点这样的事件。
但是,通过查看一些源代码,我发现了CKFinder.dataTypes.Connector
上的sendCommandPost
方法,每次需要将某些内容发送到服务器时都会调用该方法。因此,在每个重要事件中,例如文件/文件夹 - 重命名/删除/移动。
因此,您可以轻松创建自定义插件,您可以在其中访问 CKFinderAPI 实例,并从那里覆盖sendCommandPost
并添加自定义逻辑
CKFinder.addPlugin( 'myplugin', function( api ) {
var orginalsendCommandPost = api.connector.sendCommandPost;
api.connector.sendCommandPost = function() {
// call the original function
var result = orginalsendCommandPost.apply(this, arguments);
// commandname as string: 'CreateFolder', 'MoveFiles', 'RenameFile', etc
console.log(arguments[0]);
// arguments as object
console.log(JSON.stringify(arguments[1]));
return result;
}
} );
并注册插件:
config.extraPlugins = "myplugin";
var ckfinder = new CKFinder( config );
相关文章:
- javascript删除事件侦听器
- 选择选项是添加或删除事件
- jQuery使用.of()删除事件处理程序时出现的问题
- 在离开页面之前删除事件侦听器
- 如何删除事件侦听器
- 使用jQuery代理时删除事件侦听器
- 使用jquery或javascript删除事件
- 不能使用删除事件侦听器
- 如何在ReactJS中添加或删除事件上的className
- AngularJS:如何从指令添加的元素中删除事件处理程序
- javaScript-从某些链接中删除事件
- 正在删除事件侦听器(DOM级别0方式)
- 无法通过内容脚本删除事件侦听器
- 敏捷JS添加和删除事件
- 如何在 jquery UI 中取消删除事件
- 避免多次删除事件
- 何时以及为何需要删除事件
- 在 Angular 指令中,如何在删除事件后重新应用事件侦听器
- 为什么我的删除事件侦听器不起作用
- 如何从 JavaScript 中的多个元素中删除事件侦听器