利用jQuery 通用文件导出前端实现,MVC文件导出

/**
 * 下载文件
 * @param options
 * =============================
 *  downLoadFile({
 *      url:'', //下载地址
 *      data:{"id":"4f4fa1d55b114d8cb9a5e46d13b5e5bc"},//请求参数
 *      isNewWinOpen:false,//是否新窗口打开
 *      method:'post'
 *  });
 *
 *
 * =============================
 */
function downLoadFile(options) {
    var config = $.extend(true, {
        method: 'post',
        isNewWinOpen: false,
        onLoad:function () {

        }
    }, options);
    var frameName = 'downloadFrame_' + new Date().getTime();
    var $iframe = $('<div style="display: none"><iframe name="' + frameName + '" src="about:blank"></iframe></div>');
    var $form = $('<form target="' + frameName + '" method="' + config.method + '" action="' + config.url + '"></form>');
    if (config.isNewWinOpen) {
        $form.attr("target", "_blank");
    }
    $iframe.children().load(function () {
        try {
            var jsonStr = $(this).contents('body').text();
            var jsonObj;
            if(jsonStr!=''){
                jsonObj= JSON.parse(jsonStr);
                config.onLoad(jsonObj);
            }
        } catch (e) {

        }
        setTimeout(function () {
            $(this).parent().remove();
        }.bind(this), 3000);
    });
    /*拼接参数*/
    for (var key in config.data) {
        $form.append('<input type="hidden" name="' + key + '" value="' + config.data[key] + '" />');
    }
    $iframe.append($form);
    $('body').append($iframe);
    $form.submit();
}

猜你喜欢

转载自www.cnblogs.com/yeminglong/p/12105936.html
今日推荐