后台写JS 失效 没提示
msg 是存储过程的返回字符串,
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('" + msg + "')</script>");这么写程序没反映
以前的程序这么写没问题的啊
现在response.Write("<script>alert('" + msg + "')</script>"); 可以弹出提示
我怀疑Page_load 加了cookie的原因 程序只改了这个
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["userid"] != null)
{
//Response.Write(Request.Cookies["userid"].Value);
c = Request.Cookies["userid"].Value;
if (c == "" || (c.Substring(0,2)!="kf" && c.Substring(0,3)!="adm"))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>document.getElementById('gettaodata').style.display='none'</script>");
}
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>document.getElementById('gettaodata').style.display='none'</script>");
}
}
不知道哪错了
------解决方案--------------------document.getElementById('gettaodata')这个可能没有取到值
------解决方案--------------------确保你要操作的对象在JS里是否正常获取.
------解决方案--------------------
你这样写
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('" + msg + "')</script>");
msg 里面的内容不能有换行,单引号等特殊字符才可以,
正确的写法是
msg = msg.Replace("\r\n","\\r\\n").Replace("'","\\'");
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('" + msg + "')",true);
------解决方案--------------------你确认您的代码执行到了Page.ClientScript.RegisterStartupScript这行
------解决方案--------------------你的程序不行,你需要断点看执行到那个行没有,一般是你的判断条件错误导致没有执行,
你也可以查看浏览器源代码,看看源代码里面是否生成了
alert("")
这行代码
------解决方案--------------------进来学习的。。
------解决方案--------------------Page.ClientScript.RegisterStartupScript生成的代码不在页头。
在页头的response.write()出来的内容会破坏页面的css的。
Page.ClientScript.RegisterStartupScript生成的代码是在</form>这个结束标记的前面的