覆盖elFinder中的“打开”菜单项

时间:2013-03-11 00:29:57

标签: elfinder

我正在使用elFinder访问网站上的某些存储文件,但文件本身无法直接访问。相反,我通过特定的控制器动作请求它们。因此,我覆盖了elFinder中的getFileCallback以使用自定义网址:

getFileCallback: function (file) {
    window.location.href = '@Url.Action("File", "Home")' + '?path=' + encodeURI(file);
}

这适用于双击文件。但是,如果我只选择文件并使用elFinder工具栏中的“打开”按钮,则不会使用此回调。相反,它会打开一个弹出窗口并尝试使用默认URL,这会导致404错误。

有没有办法覆盖工具栏中“打开”按钮的行为?我一直在Client event APIcommands options中尝试各种各样的事情,但似乎无法找到任何修改Open行为的内容。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

我最终做的是完全覆盖open函数:

elFinder.prototype.commands.open = function () {
    // custom code
};

(只需在加载elFinder代码后在script块中执行此操作。)

我不能说它是否理想,如果对elFinder进行重大升级需要进行一些调整,但它肯定会完成这项工作。 (从这里开始,我也开始重写一些使用URL的其他函数,例如信息弹出窗口中的锚标记。)