为什么要用Page.RegisterClientScriptBlock 与Page.RegisterStartupScript呢?
Response.Write("<script language=javascript>display();</script>");
RegisterClientScriptBlock("abc","<script language=javascript>display();</script>");
不是一样么?

解决方案 »

  1.   

    Response.Write("<script>");输出在文件头部,一打开就执行。
    RegisterClientScriptBlock一般返回的是客户端函数的包装,而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock在<form runat=server>之后,而RegisterStartupScript在</form>之前。
      

  2.   

    Page.RegisterClientScriptBlock和response.write("script")效果是一样的,但脚本块在页面中的位置不同,但前者可以防止重复写入相同的脚本。
    Page.RegisterStartupScript用于写入页面载入后开始执行前的脚本,如果你用response.write写的话,脚本位于页面顶端,所以类似 window.open, document.location之类的语句会告诉你“javascript错误:找不到对象”,因为页面这时没有载入。类似这样的语句只能放到RegisterStartupScript方法里输入。