以下代码运行良好:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
document.body.style.cursor = 'progress';
}
function EndRequest(sender, args) {
document.body.style.cursor = 'default';
}
</script>
但是,当响应返回附件时(例如,来自 ReportViewer 控件的 PDF):
Response.AddHeader("Content-Disposition", "attachment; filename=some.pdf")
EndRequest() 永远不会触发,并且“进度”光标不会重置。Javascript 调用,例如
ScriptManager.RegisterStartupScript(this, this.GetType(), "close",
"parent.EndRequest(...);", true);
会做的伎俩,但由于内容处置是不可能的。您能想出一种正确的方法吗 - 在呈现 PDF 时显示等待光标,并在显示 PDF 时返回正常光标?我在这里假设 C# 上下文,但问题不是特定于语言或平台的。