gpt4 book ai didi

javascript - 两个 javascript 表单提交的 IE10 下载问题

转载 作者:行者123 更新时间:2023-11-30 06:33:34 25 4
gpt4 key购买 nike

所以我认为我有一个有点独特的问题,我不确定解决它的最佳方法是什么。我有一些遗留代码过去在所有浏览器中都运行良好,但突然在 IE10 中它无法运行。我会尽我所能解释它是如何工作的,以及我认为的问题所在。

我正在开发一个在线银行页面,用户可以选择以 QIF、CSV 等格式下载他们的帐户历史记录。该页面是用经典 ASP 和 VB 服务器代码编写的。该功能的工作方式是用户单击下载按钮,该按钮会重新加载带有一系列可单击图像的页面,每种图像对应一个下载文件类型。根据他们点击的那个,然后调用一个 javascript 函数,在页面上提交一个隐藏表单,然后提交第二个隐藏表单,以便重新加载带有帐户历史记录的原始 View 并再次过滤。第一个表单操作调用构建文件的 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 表单发送到用户已经在的页面以重新加载帐户历史详细信息,而不是显示下载图像按钮。我意识到这首先是一种非常糟糕的方法;这是由正在学习的人编写的遗留代码,并且已经被数百个客户用于生产,所以我不能在没有得到我的老板和我们所有客户的重大项目批准的情况下就重写它。

最佳答案

我还没有测试过这些想法,但如果你想保留当前的架构,你可以尝试检测文件何时完全下载,然后导航离开。

看看 this question 了解如何检测文件何时被浏览器下载。

另一个想法是放弃第一个表单提交,转而使用一个简单的 a 链接,该链接具有指向您的文件下载链接的 href 属性,使用查询字符串参数传递附加数据。如果没有它您仍然遇到同样的问题,您可能还想将 taget="_blank" 放在链接上。

关于javascript - 两个 javascript 表单提交的 IE10 下载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16025875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com