我们推荐您阅读同名文章:RegisterClientScriptBlock 与 RegisterStartupScript 的区别,其总结性更强。
RegisterClientScriptBlock 的原型与 RegisterStartupScript 相同,两个函数不同在于将其包含的脚本代码写入到 HTML 文件的不同位置。RegisterClientScriptBlock 在 Page 对象的元素的开始标记后立即发出客户端脚本,RegisterStartupScript 则是在 Page 对象的元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(Doucument 对象)进行交互的语句,则推荐使用 RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用 RegisterClientScriptBlock 或 Response.Write(不推荐用 Response.Write 输出脚本,它破坏了网页的结构。ITPOW编辑注)。
RegisterClientScriptBlock 一般返回的是客户端函数的包装,而 RegisterStartupScript 返回得函数在 Document 装载完成后会执行,类似于我们平时所说的 <body onload="f()"> 里面的函数;这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock 在 <form runat=server> 之后,而 RegisterStartupScript 在 </form> 之前。