我发现在用RegisterStartupScript后用response.redirect也会使弹出窗口无效.请问RegisterStartupScript也是把要输出的内容放到缓冲区等到最后才输出的吗?

解决方案 »

  1.   

    很明显是Response.Redirect的问题
    如果楼主的需求是弹出警告并跳转的话可以试试这个 string str = "alert(123); window.location.href('http://www.baidu.com');";
                ScriptManager.RegisterStartupScript(this,Page.GetType(),"a",str,true);
      

  2.   


    我知道啊~~但是我想问的是原理~~~是不是因为RegisterStartupScript输出的内容是存储在缓冲区,而response.redirect清楚了缓冲区的内容才会这样呢?
      

  3.   


    你调试看看执行的顺序,明显Response.Redirect执行了先,按照楼上的做呗,^_^
      

  4.   


    Response.Redirect执行了先?为什么呢?想知道原理....对了..那个字符串格式的还是不行哦
      

  5.   

    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", " <script language='javascript' >alert('登陆成功!'); </script>");  把js输出到当前页面, 使用Response.Redirect("default.aspx"); 之后会让程序强行跳离当前页js的提示就不会出现了
      

  6.   

    那为什么把Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", " <script language='javascript' >alert('登陆成功!'); </script>");输出的JS起作用的时间是??
      

  7.   

    那Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", " <script language='javascript' >alert('登陆成功!'); </script>");输出的JS起作用的时间是??
      

  8.   


    楼主可以先了解下页面的生命周期
    参考
    服务器端事件执行完毕后才会将JS输出到客户端,执行客户端事件
    而现在Response.Redirect页面重定向了。
      

  9.   


    RegisterStartupScript 不是很正常吗?
      

  10.   

    恩恩,原来是这样,但是这样的话以下这个问题又怎样解析呢?
    Button1.Attributes.Add(   "onClick","JavaScript:alert('AlertText');"   );   
    这样的话会先弹出窗口,按了确定再执行服务器的BUTTON_CLICK代码...
    那既然是先执行完服务器事件,那为什么这里不是先执行BUTTON_CLICK的代码呢??
      

  11.   

    dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
      

  12.   

    ddddddddddddddddddddddddddddddddddddddddddddddddddddd