IE下Excel二次导出兼容性调整

原创 2013年12月04日 10:09:10


问题描述:

在IE下点击Excel导出,第一次正常,第二次异常。js代码如下:

全选示例 :
//导出excel
	function exportExcel(){
		showLoad();
		var urls = '<c:url value="/store/plan/exportPlans"/>';
		$.ajax({
		        url: urls,
 			async:false,
			data:{
				query:query,
				enterpriseEnglishName:enterpriseEnglishName,
				createTime:createTime
			},
			success: function(data){
		                hiddenLoad();
			        window.location.href=
                                      "<c:url value="/store/plan/download"/>;
                                $.messager.alert('提示消息','报表生成完成!');
			}
		});
	}

原因在于:

第一次导出时,通过"/store/plan/exportPlans"路径下的方法准备Excel数据,再通过"/store/plan/download"路径下的方法下载,等下载完之后,删除文件;在IE下若第二次导出时没有及时清除缓存,浏览器会直接通过window.location.href=""所指路径下载,由于文件已经删除,故系统异常。

解决办法:

1.将window.location.href=""改成表单提交的方式,如:

全选示例 :
//导出excel
	function exportExcel(){
		showLoad();
		var urls = '<c:url value="/store/plan/exportPlans"/>';
		$.ajax({
		        url: urls,
 			async:false,
			data:{
				query:query,
				enterpriseEnglishName:enterpriseEnglishName,
				createTime:createTime
			},
			success: function(data){
		                hiddenLoad();
			        $.messager.alert('提示消息','报表生成完成!');
				$('#download').submit();
			}
		});
	} 
       
       <form id="download"
		action="<c:url value="/store/plan/download"/>" method="post">       
       </form>

2.设置自动清除缓存,步骤如图:

新的解决办法

其实问题的根本原因在于:IE是根据请求的url是不是一样来是否发送请求,对于同一请求,IE只发送一次http请求,所以同一请求发送多次,但IE实际是不会发送的。 所以我们只需要在ajax的url之后加上一个随机数或当前时间即可。

全选示例 :
var urls = '<c:url value="/store/plan/exportPlans"/>'+"?fresh="+Math.random();

js导出table到excel,同时兼容FF和IE

前台调用(第一个参数是table的id): function toExcel(inTblId, inWindow) { if ($.browser.msie)...
  • zouyujie1127
  • zouyujie1127
  • 2013年09月03日 14:02
  • 9830

JS直接导出excel 兼容ie、chrome、firefox

var idTmr; function getExplorer() { var explorer = window.navigator....
  • sinat_15114467
  • sinat_15114467
  • 2016年04月08日 17:47
  • 33614

Html导出Excel文件(兼容所有浏览器,支持设置文件名)

JavaScript Html导出Excel文件(兼容所有浏览器),现网络上首个JavaScript Html代码块导出Excel文件,兼容全部浏览器导出Excel文件的Demo,支持设置Excel文...
  • qq285679784
  • qq285679784
  • 2017年02月27日 11:01
  • 2035

IE6下常见的bug 调整页面兼容性

ie6下常见的bug 我们布局页面,首先符合标准,如何写一个页面的标准性? 但是ie6等浏览器本身就比较特殊,bug比较多,兵法云,知己知彼百战百胜。我们需要了解ie6的一些常见bug,这样...
  • yangyisen0713
  • yangyisen0713
  • 2014年07月23日 09:50
  • 840

excel 页面兼容性导出

html> head> script type="text/javascript" language="javascript"> var idTmr; function getE...
  • u014520047
  • u014520047
  • 2017年07月17日 16:21
  • 105

ASP.NET与IE11兼容性解决方法

  • 2014年07月23日 11:22
  • 1KB
  • 下载

ie tester兼容性工具

  • 2015年05月12日 23:18
  • 55.72MB
  • 下载

IE10兼容性白皮书

  • 2013年04月17日 18:10
  • 6.12MB
  • 下载

IE兼容性解决

  • 2017年03月20日 10:33
  • 339KB
  • 下载

IE和Firefox在css,JavaScript方面的兼容性

  • 2009年08月04日 15:15
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IE下Excel二次导出兼容性调整
举报原因:
原因补充:

(最多只允许输入30个字)