在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在 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); } |
请发表评论