Переопределение пункта "Открыть" в меню elFinder

Я использую elFinder для доступа к некоторым сохраненным файлам на веб-сайте, но сами файлы не доступны напрямую. Вместо этого я запрашиваю их с помощью определенного действия контроллера. Поэтому я переопределяю getFileCallback в elFinder использовать пользовательский URL:

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

Это прекрасно работает для двойного щелчка по файлу. Однако, если я просто выберу файл и использую кнопку Открыть на панели инструментов elFinder, этот обратный вызов не будет использоваться. Вместо этого он открывает всплывающее окно и пытается использовать URL-адрес по умолчанию, что приводит к ошибке 404.

Есть ли способ изменить поведение кнопки "Открыть" на панели инструментов? Я пробовал разные вещи в API событий клиента или в параметрах команд, но не могу найти ничего, что изменило бы поведение Open.

Есть какой-либо способ сделать это?

1 ответ

Решение

В итоге я полностью переопределил функцию open:

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

(Просто сделайте это в script заблокировать после загрузки кода elFinder.)

Я не могу сказать, идеален ли он, и потребуются некоторые изменения, если будут значительные обновления elFinder, но он определенно делает свою работу. (Исходя из этого, я также начал переопределять некоторые другие функции, которые используют URL, такие как тег привязки во всплывающем окне информации.)

Другие вопросы по тегам