关于向 ASP.NET 网页动态添加客户端脚本的二个方法的区别

    Page类中提供了一个ClientScript属性去管理后台注册脚本的事情,里面最经常用到的就是往前台注册脚本。我觉得它有二个比较容易混淆的方法,一个是RegisterClientScriptBlock,一个是RegisterStartupScript,今天仔细看了一下,发现了这二个方法的区别,特准备记录一下。

    RegisterClientScriptBlock是在Form里面所有html元素的前面,VIEWSTATE元素的后面加载脚本块的,如果你在脚本中用到了html元素的,就是说你用了document.getElementById这类的操作的话就会报脚本错误,缺少对象。因为你脚本中使用的元素在脚本运行的时候还没有加载,所以缺少对象是很正常的。MSDN的解释是: 在已呈现的页的顶部添加一个脚本块.

    RegisterStartupScript是在</Form>之前,所有html元素的后面加载脚本块的,这个时候所有的html元素都已经加载完成了,用document.getElementById这类的操作就可以正常执行了。MSDN中的解释是:添加的脚本块在页面加载完成但页面的 OnLoad 事件引发之前执行。

    二种方式视自己需求灵活使用。如果就简单的弹个框提示一下可以使用前者,如果需要用到页面中的html元素,则使用后者。

    可能MSDN中解释的更加专业一点吧,不过我觉得我的理解更加直观点。

转载于:https://www.cnblogs.com/bluesky4485/archive/2009/11/10/1599964.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值