RegisterClientScriptBlock和RegisterStartupScript的区别

摘要:
让我们创建一个新的默认页面:[html]viewplatecopyprint?DOCTYPEhtmlPUBLIC“-//W3C//DTDXHTML1.0过渡//EN”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> functionGetValue(){varvalue=document.getElementById.value;alert;}

RegisterClientScriptBlock在 Page 对象的 元素的开始标记后立即发出客户端脚本,RegisterStartupScript则是在Page 对象的 元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(doucument对象)进行交互的语句,则推荐使用RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用RegisterClientScriptBlock和Response.Write。

我们新建一个default页面:

  1. <SPAN style="FONT-FAMILY: Microsoft YaHei"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="Study._default" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title></title>  
  8.     <script type="text/javascript">  
  9.         function GetValue() {  
  10.             var value = document.getElementById("test").value;  
  11.             alert(value);  
  12.         }  
  13.     </script>  
  14. </head>  
  15. <body>  
  16.     <form id="form1" runat="server">  
  17.     <div>  
  18.     <input type="text" value="value" id="test"/>  
  19.     </div>  
  20.     </form>  
  21. </body>  
  22. </html>  
  23. </SPAN>  
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="Study._default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function GetValue() {
            var value = document.getElementById("test").value;
            alert(value);
        }
    </script>
</head>
<body>
    <form   runat="server">
    <div>
    <input type="text" value="value"  />
    </div>
    </form>
</body>
</html>


 

然后我们在后台pageload事件里面注册下两个脚本:

  1. <SPAN style="FONT-FAMILY: Microsoft YaHei"> protected void Page_Load(object sender, EventArgs e)  
  2.         {  
  3.             if (!IsPostBack) {  
  4.                 Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "msg", "<script>alert('RegisterClientScriptBlock')</script>");  
  5.                 Page.ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script>alert('RegisterStartupScript')</script>");  
  6.             }  
  7.         }</SPAN>  
 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) {
                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "msg", "<script>alert('RegisterClientScriptBlock')</script>");
                Page.ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script>alert('RegisterStartupScript')</script>");
            }
        }

运行页面我们可以在下图清楚地看到两个脚本的注册位置,RegisterClientScriptBlock在<form>标签之后,而RegisterStartupScript在</form>标签之前。

RegisterClientScriptBlock和RegisterStartupScript的区别第1张

所以假如我们在页面未加载完全之前使用RegisterClientScriptBlock获取页面上的值是获取不到的。

免责声明:文章转载自《RegisterClientScriptBlock和RegisterStartupScript的区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Elasticsearch 建立ik中文分词器和自定义分词Laravel-mix 中文文档下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

泛微E8升级E9代码修改

E8升级E9需要修改后台二次开发的代码,总工作量相当大。CheckCustomize=function(){varnodeId=$.val();//应用程序节点如果{varpgrcontrol=$.val);varfinishpercent=$.vl();如果{如果{Dialog.alert(“进度控制为yes,需要完成百分比!”);return false...

解决IDEA打包出现中文乱码的问题

解决方案:1.打开IDEA文件中的设置。...

element-ui表格el-table回显时默认全选数据

1、html代码˂el-table-columntype="selection"width="45"...

SQLServer2008/2012 安装、添加sa用户和密码、多实例安装、修改端口, 重启生效

因为我们无法使用sa用户登录,所以只能使用系统登录。登录后,我们需要修改相关属性。右键单击数据库,然后单击属性。在这个sa的登录属性对话框中,我们首先需要设置这个用户的密码。由于此用户名是系统的用户,我们可以直接填写密码,然后再次确认密码。然后在对话框中,单击左上角的第二个属性服务器角色。这是您要实现的添加用户的角色。...

狼人杀规则

自爆后,所有演讲立即暂停,进入夜间。自爆后的那晚,狼人可以指着那把刀。预言家只能验证某个玩家是否是狼人,除狼人是否是狼人之外的所有信息都无法验证。如果先知测试丘比特,法官不必担心丘比特是哪一个阵营,只会展示好人的手势。...