如何在此代码中实现超时:
Response.Write(@"<script language='javascript'>alert('some alert');</script>");
Response.Redirect(Request.ApplicationPath);
我想向用户显示消息,并在重定向后显示。但在我的解决方案中,操作发生得非常快,并且没有显示警报。
感谢
答案 0 :(得分:4)
删除Response.Redirect
,然后执行
Response.Write(@"
<script language='javascript'>
alert('some alert');
self.location = "/mypage.aspx";
</script>");
代码中的任何response.redirect
都会忽略已发送到浏览器的任何内容
答案 1 :(得分:1)
您可以使用META Refresh标记。即使禁用了Javascript,也会执行重定向。下面的10
是重定向完成前的超时时间:
<meta http-equiv="refresh" content="10;url=<%=Request.ApplicationPath %>">
<script>alert('some alert');</script>
<强>更新强>
至少在Firefox和Chrome中,超时从用户单击“确定”开始。它会发送更多内容以将您的文本放在页面上,而不是放在警告框中,例如:
<meta http-equiv="refresh" content="10;url=<%=Request.ApplicationPath %>">
<p class="alert">some alert</p>
答案 2 :(得分:0)
使用Response.Redirect,您可以向浏览器发送一个http 302代码,“强制”它请求另一个页面。这就是您的警报代码没有任何反应的原因。
如果要通知用户有关传输的信息,可以打印包含邮件和元刷新间隔的页面。或者你可以通过javascript处理它:
1)打印警报
2)将window.location更改为新路径