gpt4 book ai didi

javascript - window.location.href 导致动画 gif 加载器在 Firefox 中卡住

转载 作者:可可西里 更新时间:2023-11-01 01:34:47 25 4
gpt4 key购买 nike

我有一个链接,单击该链接会将用户重定向到同一页面,但带有其他参数:

<a id="lnkExportToPDF" href="javascript:void(0)">Export</a>

$('#lnkExportToPDF').click(function (e) {
e.preventDefault();
window.location.href = path + 'users/export/' + parm1 + '/' + parm2;
});

在服务器端,我通过检查请求路径中的“导出”来处理它,如果找到,我将一个 PDF 文件写入响应:

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Type", "application/pdf");
response.AddHeader("Content-Disposition", String.Format("attachment; filename=" + filename + ".pdf; size={0}", buffer.Length.ToString()));
response.BinaryWrite(buffer);
response.End();

一切正常,用户可以下载文件,但是用户使用页面上的 loader.gif 执行的任何其他操作都会显示非动画加载程序。

是什么导致了这种情况发生?响应完成后,有什么方法可以刷新/重新加载页面/javascript?

编辑:我在这里找到了一个有用的 JS 工具:http://fgnass.github.io/spin.js/但除非绝对必要,否则我宁愿不使用它

edit2: 我还尝试使用通用处理程序 (.ashx) 来处理请求(即更改 href 以指向处理程序),但是一旦页面重定向和文件写好了,同样的事情发生了

edit3: 到目前为止,这个问题只发生在 Firefox 中。我试过 Chrome 和 IE,gif 在这些浏览器中保持动画。 (每个的最新版本)

edit4: 如果我使用带有 src 的 iframe 作为图像它解决了问题,但它非常 hacky 并且在居中/填充/边距方面它的风格在所有浏览器中看起来都不同.

edit5: 是的。如果我用 Firebug 检查卡住的 gif,它会神奇地自行解冻。

最佳答案

我设法在 firefox 中重现了这个问题,但我真的找不到“解冻”gif 的方法。当我在下载后添加一个完全不同的文件并且它也被卡住时,我放弃了这种方法。

我所做的是测试触发下载的不同方式。我没有找到有效的 window.location 解决方案,但有效的是:

window.open(path + 'users/export/' + parm1 + '/' + parm2);

window.open打开一个新选项卡并通过该选项卡下载文件,而不是像 window.location 那样从当前选项卡下载文件。下载开始后,它将返回到当前选项卡。

编辑

您还可以使用隐藏的 iframe:

var iframe = document.getElementById('iframe');
iframe.src = path + 'users/export/' + parm1 + '/' + parm2;

关于javascript - window.location.href 导致动画 gif 加载器在 Firefox 中卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21913923/

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