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. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <title></title>
  6. <script type="text/javascript">
  7. function GetValue() {
  8. var value = document.getElementById("test").value;
  9. alert(value);
  10. }
  11. </script>
  12. </head>
  13. <body>
  14. <form id="form1" runat="server">
  15. <div>
  16. <input type="text" value="value" id="test"/>
  17. </div>
  18. </form>
  19. </body>
  20. </html>
  21. </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 id="form1" runat="server">
<div>
<input type="text" value="value" id="test"/>
</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获取页面上的值是获取不到的。

RegisterClientScriptBlock和RegisterStartupScript的区别的更多相关文章

  1. RegisterClientScriptBlock 与 RegisterStartupScript 的区别

    RegisterClientScriptBlock.RegisterStartupScript 都是注册一个脚本块. ClientScript.RegisterClientScriptBlock(th ...

  2. Response.Write 、RegisterClientScriptBlock和RegisterStartupScript总结

    Response.Write .RegisterClientScriptBlock和RegisterStartupScript总结 Page.ClientScript.RegisterStartupS ...

  3. Response.Write,Page.RegisterClientScriptBlock和Page.RegisterStartupScript的区别

    Response.Write("<script>");输出在文件头部,一打开就执行. RegisterClientScriptBlock一般返回的是客户端函数的包装, ...

  4. ASP.NET in C#,ClientScript.RegisterStartupScript与ClientScript.RegisterClientScriptBlock用法之己见

    ClientScript.RegisterStartupScript:http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscrip ...

  5. ASP.NET 给作为隐藏域的TextBox赋值之后提交表单,无响应?

    操作步骤: 给页面隐藏TextBox赋值,然后触发ASP.NET change事件,调用ASP.NET后台方法,调用后执行客户端脚本this.RegisterClientScriptBlock(Dat ...

  6. ASP.NET中后台注册js脚本攻略(转)

    用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别:   1.使用Page ...

  7. Page.ClientScript、ClientScript、ScriptManager、ClientScriptManager等的详细解说

    在 .aspx.cs页面中,输入这四个东西:Page.ClientScript.ClientScript.ScriptManager.ClientScriptManager,均会出提示,表示它们均可用 ...

  8. asp.net 自定义控件

    在Visual Studio中,所有的ASP.NET 2.0控件都是自定义控件,创建自己的自定义控件一般需要完成以下三步.(1)在站点APP_Code下创建一个新类:(2)修改这个类,让它成为WebC ...

  9. C# 中解决页面刷新后字体等变大问题

    来源:http://blog.csdn.net/wcsjsdn/article/details/5109605 我们在.net开发中时常会遇到一个问题,那就是,当点击某个按钮后,调用js语句,当点击& ...

随机推荐

  1. Blocks实现代理传值

    一.RootViewController: #import "RootViewController.h" #import "SecondViewController.h& ...

  2. WEB服务器安装oracle jdbc

    WEB服务器,如果想采用jdbc访问另一台Oracle数据库服务器,那么它应该先安装Oracle客户端,或者要安装oracle jdbc. 那么怎样安装oracle jdbc呢? 1.到oracle下 ...

  3. Basic Queries (LINQ to XML)

    https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/basic-queries-linq-to ...

  4. javascript函数参数、返回值类型检查

    实现带参数.返回值类型声明的js函数: 类型定义:window.Str = Type.Str = Type.define('STRING', Type.isStr);var Per = Type.de ...

  5. Android ConstraintLayout详解

    1. 概述 在本篇文章中,你会学习到有关ConstraintLayout -- 一种构建于弹性Constraints(约束)系统的新型Android Layout.最终你将会在Android Stud ...

  6. 从0开始学习Hadoop(2) 环境准备-Win7主机与Ubuntu虚拟机共享文件夹设置

    主机要跟虚拟机共享文件夹设置有很多种办法,这里提供一种本地用户的方式 1. 新增一个本地用户,密码等其他设置如下 2.选择文件目录,这是共享属性 Ubuntu端设置: 文件夹->连接到网络-&g ...

  7. linuxmint17.3提示flash不是最新版本解决方法(copy)

    [资料来自于:http://blog.csdn.net/kh896424665/article/details/54879608] 问题:播放视频提示:Adobe Flash Player 不是最新版 ...

  8. window切换Java版本原因

    查找Path环境变量的变量指向的目录,有一个Oracle目录存放着几个 java,javac等可执行文件,删除这个路径或文件就可以执行你指定的JavaHome目录拉 详情参考: https://blo ...

  9. C# 多边形面积计算公式

    最近在做地图相关面积计算显示工作,百度了很多关于多边形面积计算方面公式和代码,只能说贼费劲,最终完成了把结果展示下     原理:鞋带公式 定义:所述鞋带式或鞋带算法(也称为高斯的面积公式和测量员的式 ...

  10. jsp请求转发小例子(转载)

    在服务器端对客户端请求时行转发对其它的对象,如果jsp网页或Servlet 用三个 jsp网页来演示转发: forword1.jsp, 用来提交表单, 将表单内容提交给 forwrod2.jsp,  ...