回发后使用C#中已清除的响应执行Javascript - javascript

当用户单击我网站上的按钮时,我在服务器端制作了一个excel文件,并将其写入响应中。

HttpResponse httpResponse = Page.Response;
httpResponse.ClearHeaders();
httpResponse.ClearContent();
httpResponse.Clear();
httpResponse.Buffer = true;
httpResponse.AppendHeader("Content-Disposition",
"attachment; " +
"filename=\"" + fileName + "\";");
httpResponse.ContentType = "application/vnd.xlsx";
httpResponse.Charset = "";

using (MemoryStream memoryStream = new MemoryStream())
{
    workbook.SaveAs(memoryStream);
    memoryStream.WriteTo(httpResponse.OutputStream);
    memoryStream.Close();
}

httpResponse.Flush();
httpResponse.End();

编写完该文件后,我希望运行一个JavaScript脚本块,但似乎无法完成这项工作。我听说当我清除响应时,由于用户未获得与响应相同的页面,所以无法使用Page.ClientScript.RegisterStartupScript(不赞成使用?)编写脚本块,但是我希望有一种解决方法。

进行回发和获取文件的按钮不在UpdatePanel中,因此我无法使用在那里实现的PageRequestManager.add_endRequest函数。而且我无法将控件放入UpdatePanel中,因为它不允许我在异步回发中写入文件。

在回发结束时还有其他方法可以触发javascript函数吗?检查间隔是否正在进行(或已完成)的JavaScript间隔函数也是一种可接受的解决方案(但据我所知,JavaScript无法“检查”同步间隔是否正在进行)。

参考方案

Response.End()中止线程并将执行发送到Application_EndRequest。
在那之后什么也做不了。您可以下载文件或执行javascript。但是有使用iframes的解决方案。

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

JavaScript中的字符串评估函数 - javascript

            JavaScript中是否有任何内置函数,例如Python中的eval内置函数?注意:eval函数将方程式作为字符串并返回结果。例如,假设变量x为2,则eval("2x+5")返回9。 参考方案 是的,JavaScript中也有eval函数。此外,该声明应有效用于评估,即eval("2*x+5"…

如何在JQuery中操作JSONArray - javascript

我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…