现在的位置: 首页 > 综合 > 正文

RegisterStartupScript,RegisterClientScriptBlock使用

2017年11月27日 ⁄ 综合 ⁄ 共 1060字 ⁄ 字号 评论关闭

注意必须有服务器form 控件

使用发现如果页面缺少服务器端表单<form id="form1" runat="server"></form>会导致脚本注册不成功

RegisterStartupScript和RegisterClientScriptBlock的区别

Page.Response.Write("<script>var response;</script>");    
Page.RegisterStartupScript("RegisterStartupScript","<script>var RegisterStartupScript;</script>");    
Page.RegisterClientScriptBlock("RegisterClientScriptBlock","<script>var RegisterClientScriptBlock;</script>");   
Response.Write输出后的位置在源文件的第一行. 
RegisterClientScriptBlock输出后的位置会在<form>的下一行.(在asp.net自带的脚本和一些隐藏域之下). 
RegisterStartupScript输出后的位置会在</form>的上一行.
RegisterClientScriptBlock的原型与RegisterStartupScript相同,两个函数不同在于将其包含的脚本代码写入到HTML文件的不同位置.RegisterClientScriptBlock在 Page 对象的 元素的开始标记后立即发出客户端脚本,RegisterStartupScript则是在Page 对象的 元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(doucument对象)进行交互的语句,则推荐使用RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用RegisterClientScriptBlock或Response.Write。
RegisterClientScriptBlock一般返回的是客户端函数的包装,而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock在<form runat=server>之后,而RegisterStartupScript在</form>之前。

抱歉!评论已关闭.