gpt4 book ai didi

javascript - cfcontent 调用顺序令人费解

转载 作者:行者123 更新时间:2023-11-29 21:59:38 25 4
gpt4 key购买 nike

我正在使用 CFcontent 将电子表格从服务器流式传输到我的浏览器。在我的新手看来,我的行为非常反常。流式传输正在发生,但流式传输周围的代码没有得到执行,我不明白为什么。

首先,我设置了一个隐藏输入(默认为“0”,当用户单击“下载”按钮时切换为“1”)。

<cfparam name="txtDoDownload" default="0">
<cfif IsDefined("form.txtDoDownload")>
<cfset txtDoDownload = form.txtDoDownload>
</cfif>
<cfinput type="hidden" name="txtDoDownload" id="txtDoDownload" value="#txtDoDownload#">

然后,如果隐藏输入 Form.txtDiDownload 为 1,我将运行“下载”代码。

<cfoutput>
<cfif IsDefined("Form.txtDoDownload")>
<!--- THE FOUR ALERTS BELOW DON'T EXECUTE AFTER THE BUTTON IS CLICKED --->
<!--- BUT THE DOWNLOAD IS STILL HAPPENING --->
<script>alert("Foo!")</script>
<script>alert("Form.txtDoDownload: " + #Form.txtDoDownload#)</script>
<cfif "#Form.txtDoDownload#" EQ 1>
<script>alert("Downloading . . . ")</script>
<cfif IsDefined("Alums.Recordcount")>
<script>alert("In xlDownload")</script>
<cfset sObj = SpreadsheetNew("AlumniList","true")>
<cfscript>
SpreadsheetAddRows(sObj,Alums);
</cfscript>
<cfspreadsheet action="write" filename="C:\DevRoot\test.xlsx" name="sObj" overwrite="true">
<cfheader name="Content-Disposition" value="inline; filename=temp.xlsx">
<cfcontent deletefile="yes" type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" file="C:\wwwroot\test.xlsx">
</cfif>
<script>resetDownload();</script>
</cfif>
</cfif>
</cfoutput>

这是按钮:

<cfinput type="button" value="Download to Excel" id="btnDLXL" name="btnDLXL" onClick="initDownload()">

这是单击按钮时执行的 Javascript:

function initDownload() {
$('#txtDoDownload').val(1);
alert("initDownload (txtDoDownload): " + $('#txtDoDownload').val());
$('#AlumForm').submit();
}

下载进行得很好,但是在单击按钮后没有触发下载周围的警报(在第一次通过时,在单击按钮之前触发了一些警报)。这是“执行顺序问题”吗?有任何想法吗?谢谢!

最佳答案

@user3738377 在他们的评论中是正确的。该请求是 - 按照 <cfheader> 的指示和 <cfcontent>标签 - 用 test.xlsx 响应,所以它不能用它上面的标记来响应。因此标记永远不会发送到浏览器,因此永远不会执行。

您需要将 JS 交互移动到上一个请求的末尾:在他们按下按钮之后,但在发出对 XLS 文件的请求之前。

关于javascript - cfcontent 调用顺序令人费解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537662/

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