由于响应,Javascript被忽略.重定向()
本文关键字:重定向 Javascript 响应 于响应 | 更新日期: 2023-09-27 17:59:05
我目前正在使用C#开发asp.net,我需要显示一个消息框,确认用户的输入并重定向到另一个页面,我的代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("if (confirm('YES OR NO?')){ /*some javascript code*/ }");
sb.Append("</script>");
Page.RegisterStartupScript("FocusScript", sb.ToString());
Response.Redirect("Default.aspx");
}
这里的问题是直接重定向到下一页而不显示消息框。如果我删除Response.Redirect("Default.aspx");
,它将成功显示消息框。我认为这里可能是Response.Redirect()
与javascript
相比具有更高的优先级
我试过使用
sb.Append("if (confirm('YES OR NO?')){ window.location.href = '"Default.aspx"; }'");
与其使用Response.Redirect()
,但页面没有被重定向,我应该怎么做才能解决这个问题?
您绝对需要在服务器端处理这个问题吗?事实上,这正是一件非常简单的事情变得令人困惑的地方。
例如,如果你可以用Javascript/jQuery处理它,你可以做一些简单的事情,比如:
$('#Button1').click(function(){
if (confirm("Yes or No?")){
window.location = "/default.aspx";
}
});
有一个在客户端点击事件中使用添加javascript的选项
例如:-
<asp:button id="Button1" OnClientClick="javascript:return confirm('Are you sure?');" runat="server" onclick="Button1_Click" />
然后在代码端简单地重定向页面。
Confirm
是一个JavaScript函数,它在客户端执行。注册后,您会立即重定向到另一个页面,因此该函数永远不会执行。
在Page_Load
上添加以下代码
Button1.Attributes.Add("onclick", "if(confirm('do you want to redirect?')){}else{return false}");
现在,点击ur按钮将首先触发java确认模式框。
至于按钮1,点击
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
这个想法是-只有在用户点击OK 确认后,您的codeehind Button1_Click事件才会触发
我认为最好在页面加载时为按钮添加一个属性,并让button_click函数只重定向。类似这样的东西(页面加载):
button.attribute.add("onclick","Javascript:confirmFunction();")
在按钮点击只有这个:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
最后在JS中有这样的:
<script>
function confirmFunction()
{
if(Confirm("Yes OR NO")
//Add your JS Code
return true; //will pass onto server
else
//Add your JS Code
return false; //will not go to server
}
</script>
HTH