如何实现服务器端下页面动态添加JavaScript脚本
来源:互联网 发布:商品期货行情数据接口 编辑:程序博客网 时间:2024/05/17 02:16
在System.Web.UI.Page类中包含了RegisterStarupScript()和RegisterClientScriptBlock()两个方法,使用这两个方法可以实现向Web页面动态添加脚本块,客户端脚本按运行方式可以分为两类:一类是在加载页面后立即运行,另一类是在发生客户端事件后才运行.前者的常见示例是打开页面时立即弹出一个广告条;后者的常见示例是当用户单击莫按钮时弹出一个消息框.
RegisterStartupScript()和RegisterClientScriptBlock()两种方法使用形式如下:
Page.RegisterStartupScript(string key,string script);
Page.RegisterClientScriptBlock(string key,string script);
参数key: 是生成客户端脚本块的唯一标识符;Page.RegisterClientScriptBlock(string key,string script);
参数script: 是将要生成的客户端脚本块,它是一个字符串类型.
这两钟方法唯一的区别就是生成脚本的位置不同;
(1)RegisterStarupScript()方法
使用RegisterStarupScript()方法用于添加需要在加载页面后立即运行的脚本块.通过此方法添加的脚本块位于Web窗体的结尾处,即</form>标签之前.例如在页面Page_Load事件中添加如下代码:
Page.RegisterStartupScript("key","<script>alert('欢迎您来到本网沾!');</script>");
执行上面的程序,在IE浏览器中选择"查看"菜单的"源文件"选项,脚本块生成的位置如如下所示:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Web22</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="Web22.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwyMTA1NTI4MTE3Ozs+rxjH8qXphIPYQuLSie2igMF+KSU=" />
<FONT face="宋体">
<input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 464px; POSITION: absolute; TOP: 48px" /></FONT>
<script>alert('欢迎您来到本网站!');</script>
</form>
</body>
</HTML>
(2)RegisterClientScriptBlock()<HTML>
<HEAD>
<title>Web22</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="Web22.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwyMTA1NTI4MTE3Ozs+rxjH8qXphIPYQuLSie2igMF+KSU=" />
<FONT face="宋体">
<input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 464px; POSITION: absolute; TOP: 48px" /></FONT>
<script>alert('欢迎您来到本网站!');</script>
</form>
</body>
</HTML>
使用RegisterClientScriptBlock()方法生成的脚本块位于Web页面的开始处,即"<form runat="server">"标签之后.例如在页面Page_Load事件中添加如下代码:
Page.RegisterClientScriptBlock("key","<script>alert('欢迎您来到本网站!');</script>");
编译程序,打开页面的源文件代码,脚本块生成的位置如下所示.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Web22</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="Web22.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwyMTA1NTI4MTE3Ozs+rxjH8qXphIPYQuLSie2igMF+KSU=" />
<script>alert('欢迎您来到本网站!');</script>
<FONT face="宋体">
<input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 464px; POSITION: absolute; TOP: 48px" /></FONT>
</form>
</body>
</HTML>
此外Page类还分别为上述两个方法提供了辅助方法,它们是IsStartupScriptRegistered(string key)和IsClientScriptBlockRegistered(string key).这两个方法都接受一个参数Key,并返回一个布尔值,用于标志关键字为key的脚本块是否已添加到页面中.如果脚本块已经添加到页面都返回True,否则将返回False.使用这两个辅助方法可以避免同一脚本块在同一页面中重复添加.<HTML>
<HEAD>
<title>Web22</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="Web22.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwyMTA1NTI4MTE3Ozs+rxjH8qXphIPYQuLSie2igMF+KSU=" />
<script>alert('欢迎您来到本网站!');</script>
<FONT face="宋体">
<input name="TextBox1" type="text" id="TextBox1" style="Z-INDEX: 101; LEFT: 464px; POSITION: absolute; TOP: 48px" /></FONT>
</form>
</body>
</HTML>
另外一种方式是为控件添加触发条件.如果为一个Button控件添加"onclick"脚本事件,可在服务器使用"Button.Attributes.Add("onclick",函数名)"语句实现.
- 如何实现服务器端下页面动态添加JavaScript脚本
- 如何实现服务器端下页面动态添加JavaScript脚本
- 如何实现服务器端下页面动态添加JavaScript脚本
- 如何实现从服务器端向页面动态加载JavaScript脚本?
- 如何实现从服务器端向页面动态加载JavaScript脚本?
- 服务器端向页面动态添加javascript脚本
- 服务器端向页面动态添加JScript脚本
- 如何动态加载Javascript脚本
- 服务器端执行javascript脚本
- 如何给服务器端控件(TextBox)添加JavaScritp脚本事件
- javascript实现动态添加内容
- Javascript实现动态菜单添加
- Javascript实现动态菜单添加
- MFC下页面切换
- 服务器端动态产生客户端脚本
- JavaScript实现动态添加,删除行
- 20、formAdd,javascript实现动态添加
- JavaScript实现页面动态添加图片
- ASP.NET四种页面导航方式的比较与选择
- 刷新aspx页面的六种方法
- 经典的三层设计
- Linux下搭建Android开发环境
- ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别
- 如何实现服务器端下页面动态添加JavaScript脚本
- 如何处理多页面重定向到同一页面后的返回问题
- 如何用Response.Redirect方法传递汉字
- 客户端JavaScript实现监视用户键盘输入(只能输入数字,最大输入8个)
- 使用APPlication,Session,Cookie和ViewState等对象保存信息的区别是什么?
- 如何在ASP.NET中实现验证码?
- 如何在DataGrid控件中实现自定义分页
- ClickOnce部署WinForm应用程序
- SQL数据库的打包部署安装