RegisterStartupScript或RegisterClientScriptBlock注册js脚本而无法执行的问题分析

RegisterStartupScript,RegisterClientScriptBlock这两个方法唯一的不同之处在于从“何处”发送脚本块。RegisterClientScriptBlock() 在 Web 窗体的开始处(紧接着 <form runat="server"> 标识之后)发送脚本块,而 RegisterStartupScript() 在 Web 窗体的结尾处(在 </form> 标识之前)发送脚本块.

1.怎么知道已经通过方法注册成功了呢?请看html源文件 是否存在 <script type='text/javascript' >Salert('s_Top');</script>(</form>:我是使用RegisterStartupScript方法注册)所以在此标签结束之前). 所以检查js是关键.

2.如果page.aspx页面中不存在<form id="form1" runat="server"></form>标签,是不能注册成功的.代码是执行了在html源文件中找不到js脚本,我们就注意之前所提到的.这两个方法是依赖于form的!

3.js正确,注册也正确,却执行不了.这个你就查你所注册的事件和js方法的前后顺序问题.js注册在你所写js之前执行了.也就是说.你的js脚本方法写在</form>,而在页面加载的时候,找不到该方法.因为没加载完,或根本就没加载到js就执行了.

可以采用,<script type='text/javascript' defer>Salert('s_Top');</script>来解决这个问题,所有加载完才执行.

如果你不想使用form,也需要js脚本执行的情况解决方法,是你不使用这两个方法,而是在页面中增加一个服务器控件比如:<asp:Literal ID="ltjs" runat="server"></asp:Literal> 在程序运行时把 上面提到的js脚本直接给ltjs.Text="<script type='text/javascript' >Salert('s_Top');</script>";这样也可以执行.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值