我正在使用elFinder访问网站上的某些存储文件,但文件本身无法直接访问。相反,我通过特定的控制器动作请求它们。因此,我覆盖了elFinder中的getFileCallback
以使用自定义网址:
getFileCallback: function (file) {
window.location.href = '@Url.Action("File", "Home")' + '?path=' + encodeURI(file);
}
这适用于双击文件。但是,如果我只选择文件并使用elFinder工具栏中的“打开”按钮,则不会使用此回调。相反,它会打开一个弹出窗口并尝试使用默认URL,这会导致404错误。
有没有办法覆盖工具栏中“打开”按钮的行为?我一直在Client event API或commands options中尝试各种各样的事情,但似乎无法找到任何修改Open行为的内容。
有没有办法做到这一点?
答案 0 :(得分:3)
我最终做的是完全覆盖open函数:
elFinder.prototype.commands.open = function () {
// custom code
};
(只需在加载elFinder代码后在script
块中执行此操作。)
我不能说它是否理想,如果对elFinder进行重大升级需要进行一些调整,但它肯定会完成这项工作。 (从这里开始,我也开始重写一些使用URL的其他函数,例如信息弹出窗口中的锚标记。)