2

我正在使用elFinder访问网站上的一些存储文件,但这些文件本身不能直接访问。相反,我通过特定的控制器操作请求它们。所以我覆盖了getFileCallbackelFinder 以使用自定义 URL:

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

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

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

有没有办法做到这一点?

4

1 回答 1

3

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

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

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

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

于 2013-03-12T00:17:09.420 回答