通过此代码,我使用 C#
从服务器端在 ASP.Net
中显示 JavaScript
警报消息框。
但是我只需要在第一次访问网页时显示该消息,如何解决这个问题?
请帮助我。
我的代码如下,提前谢谢您。
protected void Page_Load(object sender, EventArgs e)
{
string message = "Hello!";
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script type = 'text/javascript'>");
sb.Append("window.onload=function(){");
sb.Append("alert('");
sb.Append(message);
sb.Append("')};");
sb.Append("</script>");
ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());
}
最佳答案
在显示警报之前,您需要检查页面是否没有回发:
if (!IsPostBack)
{
string message = "Hello!";
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script type = 'text/javascript'>");
sb.Append("window.onload=function(){");
sb.Append("alert('");
sb.Append(message);
sb.Append("')};");
sb.Append("</script>");
ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());
}
更新:
您可以创建一个 cookie 来跟踪警报,以便在初始页面加载期间显示后不再显示:
private bool Alerted()
{
if (Request.Cookies["alerted"] != null)
return Server.HtmlEncode(Request.Cookies["alerted"].Value) == "true";
else
{
Response.Cookies["alerted"].Value = "true";
Response.Cookies["alerted"].Expires = DateTime.Now.AddDays(10);
return false;
}
}
用法:
if(!Alerted())
{
// alert script here
}
关于javascript - 仅在第一次访问 C# 网页时显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35452366/