看过很多导出下载的方式,大都是弹出新窗口下载,我倒是一直用iframe来模拟加载新窗口,从而达到下载文件的目的。
下面是最近用extjs时,也是用到的iframe来模拟无弹窗下载
if (exportForm.getForm().isValid()) { var winobj = Ext.getCmp("exportpopwin"); if (winobj) { winobj.destroy(); } var startDate, startTime, endDate, endTime; startDate = new Date(Ext.getCmp("exportstartdate").getValue()).format("Y-m-d"); startTime = Ext.getCmp("exportstarttime").getValue(); endDate = new Date(Ext.getCmp("exportenddate").getValue()).format("Y-m-d"); endTime = Ext.getCmp("exportendtime").getValue(); var targetWin; switch (dataType) { case 0: targetWin = new Ext.Window({ id: "exportpopwin", layout: "fit", width: 0, height: 0, html: "Exporting...<iframe scrolling='auto' frameborder='0' width='1px' height='1px' src='export.aspx?dt=0&sd=" + startDate + "&st=" + startTime + "&ed=" + endDate + "&et=" + endTime + "'></iframe>" }); break; case 1: targetWin = new Ext.Window({ id: "exportpopwin", layout: "fit", width: 0, height: 0, html: "Exporting...<iframe scrolling='auto' frameborder='0' width='1px' height='1px' src='export.aspx?dt=1&sd=" + startDate + "&st=" + startTime + "&ed=" + endDate + "&et=" + endTime + "'></iframe>" }); break; } targetWin.show(); targetWin.setVisible(false); //targetWin.toBack();//这个方式把导出窗口隐藏到条件窗口的后面也可以 }