• RegisterStartupScript和RegisterClientScriptBlock区别(ZZ)


    RegisterStartupScript(key, script) 
    RegisterClientScriptBlock(key, script)
    这两个方法的作用都是从前台向后台写脚本,且都接受两个相同的参数:
         第一个参数 key 是插入的客户端脚本的唯一标识符。
         第二个参数 script 是要插入到页面中的客户端脚本内容,包括 <script> 的起始标记和终止标记</script>。
         
       这两个方法唯一的不同之处在于向“何处”注册脚本块。
             RegisterClientScriptBlock(key, script) 在 form开始处(紧接 <form runat="server"> 标识之后)发送脚本块      
             使用场景:
                   一般不使用DOM元素
             RegisterStartupScript(key, script) 在 form结尾处(在 </form> 标识之前)发送脚本块,在document装载完成后会执行,等价于body.onload=f(){}里的内容
             使用场景:
                   一般要使用DOM元素,比如:修改dom元素的值等

    ——————————————————————————————————————————————————————————————————————

    Page.ClientScript.RegisterClientScriptBlock & Page.ClientScript.RegisterStartupScript


    1、使用Page.ClientScript.RegisterClientScriptBlock
    RegisterClientScriptBlock方法可以把JavaScript函数放在页面的顶部。也就是说,该脚本用于在浏览器中启动页面。

    <%@ Page Language="C#" %>
    <script runat="server">
    protected void Page_Load(object sender,EventArgs e)
    {
    string myScript = @"function AlertHello() { alert('Hello ASP.NET'); }";
    Page.ClientScript.RegisterClientScriptBlock(
    this.GetType(),
    "MyScript",myScript,true);
    }
    </script>

    在这个例子中,把JavaScript函数AlertHello()创建为一个字符串myScript。然后使用Page. ClientScript.RegisterClientScriptBlock方法编写放在页面上的脚本。RegisterClientScriptBlock方法的两个构建方式如下:
    ● RegisterClientScriptBlock (type,key,script)
    ● RegisterClientScriptBlock (type,key,script,script tag specification)

    4.4.2 使用Page.ClientScript.RegisterStartupScript
    RegisterStartupScript方法与RegisterClientScriptBlock方法的区别不大。最大的区别是RegisterStartupScript把脚本放在ASP.NET页面的底部,而不是顶部。实际上,RegisterStartup Script方法甚至使用与RegisterClientScriptBlock方法相同的构造函数:
    ● RegisterStartupScript (type,key,script)
    ● RegisterStartupScript (type,key,script,script tag specification)
    那么,在页面上注册脚本的过程有什么区别?实际上区别很大!
    如果在页面上有一些处理控件的JavaScript,在大多数情况下应使用RegisterStartupScript方法,而不是RegisterClientScriptBlock方法。
    就是,查找、调用页面控件的时候,就使用 Page.ClientScript.RegisterStartupScript

    4.4.3使用Page.ClientScript.RegisterClientScriptInclude
    最后一个方法是RegisterClientScriptInclude。许多开发人员都把JavaScript放在.js文件中,这是最好的方式,因为很容易把对JavaScript的修改应用于整个应用程序。使用RegisterClientScriptInclude方法可以在ASP.NET页面上注册脚本文件,如下所示。
    string myScript = "myJavaScriptCode.js"
    Page.ClientScript.RegisterClientScriptInclude("myKey",myScript);

    ____________________________________________________________________________________________________________________

    From MSDN:

    <%@ Page Language="C#"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
      public void Page_Load(Object sender, EventArgs e)
      {
        String csname1 = "PopupScript";
        String csname2 = "ButtonClickScript";
    
        if (!IsClientScriptBlockRegistered(csname1))
        {
            String cstext1 = "<script type=\"text/javascript\">" +
                "alert('Hello World');</" + "script>";
            RegisterStartupScript(csname1, cstext1); //未使用了DOM元素,和上面说法相矛盾
    } if (!IsClientScriptBlockRegistered(csname2)) { StringBuilder cstext2 = new StringBuilder(); cstext2.Append("<script type=\"text/javascript\"> function DoClick() {"); cstext2.Append("Form1.Message.value='Text from client script.'} </"); cstext2.Append("script>"); RegisterClientScriptBlock(csname2, cstext2.ToString()); //使用DOM元素 } } </script> <html > <head> <title>RegisterClientScriptBlock Example</title> </head> <body> <form id="Form1" runat="server"> <input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" /> </form> </body> </html>
  • 相关阅读:
    VUE框架的插值操作补充
    VUE框架
    VUE框架vif
    VUE框架 methods使用
    JS 计时器案例
    JS 函数
    VUE框架安装
    VUE框架的插值操作
    JS Date类型
    VUE框架的使用
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1962356.html
Copyright © 2020-2023  润新知