我正在尝试向用户显示一个下载弹出窗口,这是一个ajax调用,提供text / csv格式的响应。
问题:它在Firefox中运行良好,但在Chrome中却没有,它正在打开一个新选项卡。这绝对是无意的,我宁愿没有发生。关于我可以改变的任何想法......?
function x() {
var obj = jQuery("input:checked").map(function()
{
return jQuery(this).parents('tr').attr('id');
});
var result = null;
var arr = jQuery.makeArray(obj);
var data = arr.join(',');
$.ajax({
url : '<%= url_for :controller => "liges", :action => "export_to_csv" %>',
type : 'POST',
data : {data:data},
dataType : 'string',
async: false,
success : function(response) {
window.open('data:text/csv;charset=utf-8,'+escape(response));
}
});
};
答案 0 :(得分:1)
试试这个:
window.open("","","width=400,height=150");
顺便说一下,chrome会阻止页面上的弹出窗口,直到你让他访问。
答案 1 :(得分:0)
您需要将_blank
作为另一个参数传递:
来自MDN:
要在
window.open()
的每次通话中打开新窗口,请使用_blank
的特殊值strWindowName
。
示例:强>
window.open('data:text/csv;charset=utf-8,'+escape(response), '_blank');