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