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>";这样也可以执行.
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>";这样也可以执行.