0

我试图向用户显示一个下载弹出窗口,这是一个 ajax 调用,提供文本/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)); 
    }    
  }); 
};
4

2 回答 2

1

尝试这个:

window.open("","","width=400,height=150");

顺便说一句,chrome 会阻止页面上的弹出窗口,直到您授予他访问权限。

于 2012-10-10T10:11:24.720 回答
0

您需要_blank作为另一个参数传递:

来自MDN

要在每次调用时打开一个新窗口,请window.open()使用 的特殊_blankstrWindowName

例子:

window.open('data:text/csv;charset=utf-8,'+escape(response), '_blank'); 
于 2012-10-10T10:10:02.263 回答