选择文件后用程序关闭elfinder

Close elfinder Programatically after File selection

本文关键字:elfinder 程序 文件 选择      更新时间:2024-03-15

我希望我的elfinder在选择文件后自动关闭。

<script>
    function upload_slider(){
        var f = $('#elfinder').elfinder({
            url : 'plugins/elfinder/php/connector.php',
            height: 490,
            docked: false,
            dialog: { width: 400, modal: true },
            closeOnEditorCallback: true,
            getFileCallback: function(url) {
                $('#new_file').val(url);
                // CLOSE ELFINDER HERE
            }
        }).elfinder('instance');
    }
</script>
<input type="text" id="new_file" />
<input type="button" onclick="upload_slider();" value="Select File"  />
<div id="elfinder"></div>

如何做到这一点?我找了很多地方都找不到合适的路。

答案很接近,但必须重新加载页面对我来说不是一个选项。我们正在做的是删除elfinderdiv……所以在我看来,如果我们一开始就有代码来创建它,我们就不必重新加载它。

<div id="elfcontain"></div>
---------------------------------------------------------------------------
function filebrowser() {
$('#elfcontain').append('<div id="elfinder"></div>');
    var elf = $('#elfinder').elfinder({     
    url: 'data/connector/connector.php',  // connector URL (REQUIRED)        
    getFileCallback: function(url) {
        console.log(url);
        $('#elfinder').remove();
        return url;
    }
    }).elfinder('instance');
}

只是给任何发现自己处于这种情况的人一个参考。由于我们每次都创建elfinderdiv,因此您现在可以随心所欲地隐藏/显示它,而无需重新加载。

几个小时后,我为您找到了一个解决方案,因为我遇到了完全相同的问题。我觉得还可以。

$().ready(function() {
$('#select-button').click(function(){
    var f = $('#elfinder').elfinder({
        url : 'plugins/elfinder/php/connector.php',
        height: 490,
        docked: false,
        dialog: { width: 400, modal: true },
        closeOnEditorCallback: true,
        getFileCallback: function(url) {
            $('#fileurl').val(url);
            // CLOSE ELFINDER HERE
            $('#elfinder').remove();  //remove Elfinder
            location.reload();   //reload Page for second selection
        }
    }).elfinder('instance');
});

})

比您想象的要容易得多。

   getFileCallback: function (filePath, fm) {
     fm.hide();
   }