0

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

这个怎么做?我已经通过找不到合适的方式搜索了很多地方。

4

3 回答 3

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

对于发现自己处于这种情况的任何人,仅供参考。由于我们每次都创建 elfinder div,您现在可以根据自己的喜好隐藏/显示它,而无需重新加载。

于 2014-06-09T18:34:46.683 回答
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');
});

})

于 2013-12-25T16:35:07.837 回答
0

比你想象的要容易得多。

   getFileCallback: function (filePath, fm) {
     fm.hide();
   }
于 2018-01-25T10:58:13.353 回答