RegisterStartupScript和RegisterClientScriptBlock的异同

   RegisterStartupScript和RegisterClientScriptBlock最主要的差异在于前者将脚本放到</form>标签之前,而后者将脚本放到<form>

标签之后。那么,这两种情况有什么异同呢?实际上有很多的不同,让我们开一下。

  

    举例如下:Page上有一个Textbox,我们需要使页面加载的时候,焦点自动放到该Textbox上,使用RegisterStartupScript的方法如下

 

Page.ClientScript.RegisterStartupScript(Me.GetType(), "Testing", "document.forms[0]['TextBox1'].focus();", True)

很好,这个代码工作正常!因为在脚本执行的时候,页面上已经有了Textbox1。但是如果我们换成使用RegisterClientScriptBlock会
是如何呢?请看下面的代码:
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "Testing", "document.forms[0]['TextBox1'].focus();", True)
        这样,焦点不会自动放到Textbox1上,而且页面上会有一个脚本错误的提示出现。造成这个问题的原因是因为这个脚本执行的时候
浏览器并没有把Textbox1加载到页面上,所以脚本找不到Textbox1这个tag。
将Javascript放到单独的文件中(.js)
我们非常推荐将Javascript放到单独的文件中的使用方法。只要你把此.js文件放到project里面,都可以使用刚才提到的方法在页面加载时,
将此文件加载执行。例如:
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "MyScript", "MyJavaScriptFile.js")
这种方法能够保证在执行javascript脚本的时候,所有的页面元素都已经正确加载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值