Asp.net 动态添加JS

客户端动态注册 JavaScript

在 ASP.NET2.0 中有一个专门用来管理客户端 JavaScript 脚本的类 ClientScriptManager
这样我们可以根据程序需要动态的注册所需的 JavaScript 脚本程序

它具有四种方式
I   RegisterClientScriptBlock
将 JavaScript 区块添加到页面头部 [Head]。
可 以字符创形式创建这些代码,然后将它传递给添加网页的方法。可以使用这种方式将任何 JavaScript 插入网页。
对应的检测注册方法
Page.ClientScript.IsClientScriptBlockRegistered()

Sample:  
protected void Page_Load(Object sender, EventArgs e)
{
// 动态建立 JavaScript
     string info = "" ;
info
+= " function showName(username) " ;
info
+= " {alert('您的名字是' + username);} " ;

// 判断 myName 是否已被注册
     if ( ! Page.ClientScript.IsClientScriptBlockRegistered( this .GetType(), " myName " ))
{
    // 动态注册 JavaScript
        Page.ClientScript.RegisterClientScriptBlock( this .GetType(), " myName " , info, true );
}
}


II RegisterClientScriptInclude
这种方法类似上一种方法,但是会添加引用外部 .js 文件的 JavaScript 区块。
在以动态方式添加任何其他 JavaScript 之前就会添加这个包含文件。因此您可能无法引用网页上的某些项目。
对应的检测注册方法
Page.ClientScript.IsClientScriptIncludeRegistered()

Sample:
Info.js
// JavaScript
function showName(username)
{
alert('您的姓名是: '
+ username);
}

Page.aspx
< form id ="form1" runat ="server" >
< div >
请输入姓名:
< input id ="txtUserName" type ="text" />
< input type ="button" id ="btnSubmit" value ="确定" onclick ="showName(txtUserName.value)" />
</ div >
</ form >

Page.aspx.cs
protected void Page_Load(Object sender, EventArgs e)
{
// 动态注册 Info.js
// 判断是否已被注册
     if ( ! ClientScript.IsClientSecriptIncludeRegistered( this .GetType(), " myMessage " ))
{
    // 若没有被注册,则将 Info.js 动态注册
        Page.ClientScript.RegisterClientScriptInclude( " myMessage " , " ./Script/Info.js " );
}
}


III RegisterStartupScript
RegisterStartupScript 通常只包含“执行一次”的 JavaScript,例如用户进入网页就显示一个欢迎光临的消息。
对应的检测注册方法
Page.ClientScript.IsStartupScriptRegistered()

Sample
protected void Page_Load(Object sender, EventArgs e)
{
string info = " <script>alert('欢迎光临领航网络管理系统!');</script> " ;
if ( ! Page.ClientScript.IsStartupScriptRegistered( " welcome " ))
{
Page.ClientScript.RegisterStartupScript(
this .GetType(), " welcome " ,info);
}
}


IV RegisterOnSubmitStatement
添加 执行以响应网页 onsubmit 事件的 JavaScript。在送出网页之前就会执行 JavaScript,并且让你有机会取消提交操作。
对应检测注册方法
Page.ClientScript.IsOnSubmitStatementRegistered()
另:
  // 引入js文件
HtmlGenericControl scriptControl = new HtmlGenericControl( " script " );
scriptControl.Attributes.Add(
" type " , " text/javascript " );
scriptControl.Attributes.Add(
" language " , " JavaScript " );
scriptControl.Attributes.Add(
" src " , " http://images.dayoo.com/travel/9208.files/changeimg.js " );
Page.Header.Controls.Add(scriptControl);
// 引入样式表
Literal cssControl = new Literal();
cssControl.Text
= " <link href=\"http://images.dayoo.com/photo/17358.files/css.css\" rel=\"stylesheet\" type=\"text/css\"/> " ;
Page.Header.Controls.Add(cssControl);


//在页面顶部添加脚本
if (!Page.ClientScript.IsClientScriptBlockRegistered("myscriptKey"))//判断是否已经存在相同//键值的ScriptBlock
{
string myScript = @"function AlertHello(){alert('hello xuanhun!!');}";//脚本内容
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myscriptKey", myScript,true);

}
//在页面底部添加脚本
if(!Page.ClientScript.IsStartupScriptRegistered("footscriptkey"))
{
string CallScript = @"AlertHello();";
Page.ClientScript.RegisterStartupScript(this.GetType(), "footscriptKey", CallScript, true);
}
// 添加对js文件的引用
if(!Page.ClientScript.IsClientScriptIncludeRegistered("incluedeKey"))
{
string IncludeScript = @"/js/ShowHello.js";
Page.ClientScript.RegisterClientScriptInclude("includeKey", IncludeScript);
}

转载于:https://www.cnblogs.com/hynxy0115/articles/2219801.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值