文件选择后以编程方式关闭elfinder

时间:2013-12-05 13:05:50

标签: javascript elfinder

我希望我的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>

怎么做?我找不到适当的方式搜索了很多地方。

3 个答案:

答案 0 :(得分:1)

答案很接近,但不得不重新加载页面对我来说不是一个选择。我们正在做的是删除elfinder div ...所以在我看来,如果我们有代码在开始时创建它,我们就不必重新加载以恢复它。

<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');
}

对于发现自己处于这种情况的任何人来说只是一个FYI。由于我们每次都会创建elfinder div,因此您现在可以隐藏/显示内容,而无需重新加载。

答案 1 :(得分:0)

几小时后我得到了一个解决方案,因为我有完全相同的问题。我认为它的工作正常。

$().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');
});

})

答案 2 :(得分:0)

比你想象的容易得多。

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