所以我有一个我认为有些独特的问题,我不确定解决它的最佳方法是什么。我有一些过去在所有浏览器中运行良好的遗留代码,突然在 IE10 中它无法运行。我会尽力解释它是如何工作的以及我认为是什么问题。
我正在开发一个在线银行页面,用户可以选择将他们的帐户历史记录下载为 QIF、CSV 等。该页面是用经典的 ASP 和 VB 服务器代码编写的。该功能的工作方式是用户单击下载按钮,该按钮使用一系列可点击的图像重新加载页面,每个下载文件类型都有一个。根据他们单击的那个,然后调用一个 javascript 函数,该函数在页面上提交一个隐藏表单,然后提交第二个隐藏表单,以便重新加载包含帐户历史记录和过滤器的原始视图。第一个表单动作调用一个构建文件的 asp 页面并将其作为响应附件返回,该附件通常会提示浏览器下载文件,然后第二个提交动作只是带有历史详细信息的原始 asp 页面。在 IE10 中,文件没有
我在查找中发现,如果我注释掉提交第二个表单的 javascript 行,那么下载工作,所以我认为正在发生的事情是提交是异步发生的,并且重定向在下载之前返回。或类似的东西。我不确定。我正在尝试找出一种解决方法,而不必完全重写该功能。有什么想法吗?
编辑:
这一切发生的页面是 accountDetails.asp
javascript——
function SetOFX(type){
// There is some code that does conditional handling of the @type parameter
document.forms.DownloadForm.submit();
document.forms.Finished.submit();
return false
}
下载表格——
<form name="DownloadForm" id="DownloadForm" action="downloadofx.asp" method="post">
<!-- a bunch of input type="hidden" elements -->
</form>
完成的表格——
<form name="Finished " id="Finished " action="accountDetails.asp" method="post">
<!-- a bunch of input type="hidden" elements -->
</form>
因此,DownloadForm 调用一个单独的 asp 页面来获取下载文件,然后将 Finished 表单发布到用户已经打开的页面以重新加载帐户历史详细信息,而不是显示下载图像按钮。我首先意识到这是一种非常糟糕的方式。这是由正在学习的人编写的遗留代码,并且已经被数百个客户用于生产,所以我不能在没有我的老板和我们所有客户的重大项目批准的情况下重写它。