我的最终目标是在页面重新加载时以及在重定向加载时回显后显示一个微调器/加载器。
当前页面提交表单时,我没有显示微调器的问题,但是在回发后重新加载并且微调器消失了。然后,它重定向到外部页面。在此回发和重定向期间,我可能会在几秒钟内显示一个空白的白色屏幕。
我将尝试给出一些代码作为例子。
单击按钮后,此位显示加载程序正常:
//CSS
.overlay-spinner {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
background-color: #000;
background-image: url(../Images/hd-spinner.gif);
background-repeat: no-repeat;
background-position: center;
z-index: 9999;
opacity: 0.8;
filter: alpha(opacity=80);
}
//JS
function showLoader() {
var overlay = '<div class="overlay-spinner"></div>';
jQuery(overlay).appendTo('html');
}
//asp.net button
<asp:Button ID="bMakePayment" TabIndex="30" runat="server" OnClick="bMakePayment_Click" Text="Make Payment" OnClientClick="showLoader();"/>
然后页面重新加载,bMakePayment_Click在服务器端触发,而服务器端又调用它:
private void HTTPPostForm(string content, string url)
{
Response.Clear();
Response.Write("<html><head></head>");
Response.Write("<body onload='document.newForm.submit();'>");
Response.Write("<form name='newForm' target='_parent' method='POST' action='" + url + "'>");
Response.Write(string.Format("<input type='hidden' name='PWREQUEST' value='{0}' />", base64Encode(content)));
Response.Write("</form>");
Response.Write("</body></html>");
Response.End();
}
现在发生这种情况时,它最终会重定向到另一个页面,但我的页面和外部页面上有几秒钟的屏幕。这是我无法弄清楚如何展示微调器的地方。
我尝试将此响应发送到iframe以在那里加载结果(通过更改目标),但之后它会在新标签中加载外部页面,并在同一窗口中显示此响应,而不是我原始页面上的iframe。
我想我并不完全了解手头的流程,所以如果您需要更多我的代码,请告诉我。