![]() |
1
2
你不能。你可以通过点击按钮打开一个弹出窗口,让弹出窗口服务于文件并从javascript发回页面来伪造行为。但是,通过这种方式,您可以有效地创建2个请求和2个响应。 更新:如果你想在他们开始下载时禁用这个按钮,并在下载一开始就启用它,你不能真的这样做,但你可以使用一些小技巧使它看起来像那样。当他们点击下载按钮时,使用一些javascript来禁用该按钮,并创建一个弹出窗口来启动文件流。当filestreaming函数(writetoresponse)返回时,在用户会话中设置一些值。同时让原始页面使用Ajax对服务器进行轮询,以查看是否设置了会话值。如果设置为“重新启用”按钮并再次将该值设置为空或假(这样第二次有效)。但这似乎是一个完整的技巧。 但我认为在这种情况下,治疗比问题更糟糕。我假设您需要这样做,因为生成文件需要一段时间,并且您不希望用户在准备文件时不耐烦地按按钮来重置流。为了实现这一点,我只需在页面上的按钮上显示一条弹出消息,并说“您的下载正在准备中”。这可能需要一分钟。谢谢你的耐心等待。(单击可取消此消息) |
![]() |
2
2
不能在同一响应中发回文件和新页。 我不确定该解决方案如何满足您的特定需求,但请记住,您可以使用javascript来启用或禁用按钮。 之前 发送文件创建请求 到 服务器(这样,当用户开始下载电子表格时,按钮已经处于您想要的状态)。 |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 3 年前 |