ASP.NET中常用输出JS脚本的类

 

在ASP.NET中我们经常需要输出一些JS脚本,比如弹出一个警告窗口,返回到历史页面等JS功能,我看到网上流传得比较广的是马先光写的一个JScript类,这个类基本将经常用到的JS脚本包含了,非常方便,唯一的不足是作者采用的Response.Write(string msg)的办法,这样造成输出的js脚本在<html></html>标签之外,破坏了原有XHTML的结构,所以本人在满足原功能的情况下,对JScript类做了进一步的改善,这个改善采用了重载的办法,增加了一个System.Web.UI.Page类的实例作为参数,不会影响原来的程序代码。

整个程序的代码如下:

using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Web;
using  System.Web.UI;

///   <summary>
///  一些常用的Js调用
///  添加新版说明:由于旧版普遍采用Response.Write(string msg)的方式输出js脚本,这种
///  方式输出的js脚本会在html元素的&lt;html&gt;&lt;/html&gt;标签之外,破坏了整个xhtml的结构,
///  而新版本则采用ClientScript.RegisterStartupScript(string msg)的方式输出,不会改变xhtml的结构,
///  不会影响执行效果。
///  为了向下兼容,所以新版本采用了重载的方式,新版本中要求一个System.Web.UI.Page类的实例。
///  创建时间:2006-9-13
///  创建者:马先光
///  新版作者:周公
///  修改日期:2007-4-17
///  修改版发布网址: http://blog.csdn.net/zhoufoxcn
///   </summary>
public   class  JScript
{
    
#region  旧版本
    
///   <summary>
    
///  弹出JavaScript小窗口
    
///   </summary>
    
///   <param name="js"> 窗口信息 </param>
     public   static   void  Alert( string  message)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    alert('
"   +  message  +   " ');</Script> " ;
        HttpContext.Current.Response.Write(js);
        
#endregion
    }

    
///   <summary>
    
///  弹出消息框并且转向到新的URL
    
///   </summary>
    
///   <param name="message"> 消息内容 </param>
    
///   <param name="toURL"> 连接地址 </param>
     public   static   void  AlertAndRedirect( string  message,  string  toURL)
    {
        
#region
        
string  js  =   " <script language=javascript>alert('{0}');window.location.replace('{1}')</script> " ;
        HttpContext.Current.Response.Write(
string .Format(js, message, toURL));
        
#endregion
    }

    
///   <summary>
    
///  回到历史页面
    
///   </summary>
    
///   <param name="value"> -1/1 </param>
     public   static   void  GoHistory( int  value)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    history.go({0});  
                  </Script>
" ;
        HttpContext.Current.Response.Write(
string .Format(js, value));
        
#endregion
    }

    
///   <summary>
    
///  关闭当前窗口
    
///   </summary>
     public   static   void  CloseWindow()
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    parent.opener=null;window.close();  
                  </Script>
" ;
        HttpContext.Current.Response.Write(js);
        HttpContext.Current.Response.End();
        
#endregion
    }

    
///   <summary>
    
///  刷新父窗口
    
///   </summary>
     public   static   void  RefreshParent( string  url)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    window.opener.location.href='
"   +  url  +   " ';window.close();</Script> " ;
        HttpContext.Current.Response.Write(js);
        
#endregion
    }


    
///   <summary>
    
///  刷新打开窗口
    
///   </summary>
     public   static   void  RefreshOpener()
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    opener.location.reload();
                  </Script>
" ;
        HttpContext.Current.Response.Write(js);
        
#endregion
    }


    
///   <summary>
    
///  打开指定大小的新窗体
    
///   </summary>
    
///   <param name="url"> 地址 </param>
    
///   <param name="width"> </param>
    
///   <param name="heigth"> </param>
    
///   <param name="top"> 头位置 </param>
    
///   <param name="left"> 左位置 </param>
     public   static   void  OpenWebFormSize( string  url,  int  width,  int  heigth,  int  top,  int  left)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>window.open(' "   +  url  +   @" ','','height= "   +  heigth  +   " ,width= "   +  width  +   " ,top= "   +  top  +   " ,left= "   +  left  +   " ,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');</Script> " ;

        HttpContext.Current.Response.Write(js);
        
#endregion
    }


    
///   <summary>
    
///  转向Url制定的页面
    
///   </summary>
    
///   <param name="url"> 连接地址 </param>
     public   static   void  JavaScriptLocationHref( string  url)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    window.location.replace('{0}');
                  </Script>
" ;
        js 
=   string .Format(js, url);
        HttpContext.Current.Response.Write(js);
        
#endregion
    }

    
///   <summary>
    
///  打开指定大小位置的模式对话框
    
///   </summary>
    
///   <param name="webFormUrl"> 连接地址 </param>
    
///   <param name="width"> </param>
    
///   <param name="height"> </param>
    
///   <param name="top"> 距离上位置 </param>
    
///   <param name="left"> 距离左位置 </param>
     public   static   void  ShowModalDialogWindow( string  webFormUrl,  int  width,  int  height,  int  top,  int  left)
    {
        
#region
        
string  features  =   " dialogWidth: "   +  width.ToString()  +   " px "
            
+   " ;dialogHeight: "   +  height.ToString()  +   " px "
            
+   " ;dialogLeft: "   +  left.ToString()  +   " px "
            
+   " ;dialogTop: "   +  top.ToString()  +   " px "
            
+   " ;center:yes;help=no;resizable:no;status:no;scroll=yes " ;
        ShowModalDialogWindow(webFormUrl, features);
        
#endregion
    }
    
///   <summary>
    
///  弹出模态窗口
    
///   </summary>
    
///   <param name="webFormUrl"></param>
    
///   <param name="features"></param>
     public   static   void  ShowModalDialogWindow( string  webFormUrl,  string  features)
    {
        
string  js  =  ShowModalDialogJavascript(webFormUrl, features);
        HttpContext.Current.Response.Write(js);
    }
    
///   <summary>
    
///  弹出模态窗口
    
///   </summary>
    
///   <param name="webFormUrl"></param>
    
///   <param name="features"></param>
    
///   <returns></returns>
     public   static   string  ShowModalDialogJavascript( string  webFormUrl,  string  features)
    {
        
#region
        
string  js  =   @" <script language=javascript>                            
                            showModalDialog('
"   +  webFormUrl  +   " ','',' "   +  features  +   " ');</script> " ;
        
return  js;
        
#endregion
    }
    
#endregion

    
#region  新版本
    
///   <summary>
    
///  弹出JavaScript小窗口
    
///   </summary>
    
///   <param name="js"> 窗口信息 </param>
     public   static   void  Alert( string  message, Page page)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    alert('
"   +  message  +   " ');</Script> " ;
        
// HttpContext.Current.Response.Write(js);
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " alert " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" alert " , js);
        }
        
#endregion
    }

    
///   <summary>
    
///  弹出消息框并且转向到新的URL
    
///   </summary>
    
///   <param name="message"> 消息内容 </param>
    
///   <param name="toURL"> 连接地址 </param>
     public   static   void  AlertAndRedirect( string  message,  string  toURL, Page page)
    {
        
#region
        
string  js  =   " <script language=javascript>alert('{0}');window.location.replace('{1}')</script> " ;
        
// HttpContext.Current.Response.Write(string.Format(js, message, toURL));
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " AlertAndRedirect " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" AlertAndRedirect " string .Format(js, message, toURL));
        }
        
#endregion
    }

    
///   <summary>
    
///  回到历史页面
    
///   </summary>
    
///   <param name="value"> -1/1 </param>
     public   static   void  GoHistory( int  value, Page page)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    history.go({0});  
                  </Script>
" ;
        
// HttpContext.Current.Response.Write(string.Format(js, value));
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " GoHistory " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" GoHistory " string .Format(js, value));
        }
        
#endregion
    }

    
//          // / <summary>
    
//          // / 关闭当前窗口
    
//          // / </summary>
    
//         public static void CloseWindow()
    
//         {
    
//             #region
    
//             string js = @"<Script language='JavaScript'>
    
//                     parent.opener=null;window.close();  
    
//                   </Script>";
    
//             HttpContext.Current.Response.Write(js);
    
//             HttpContext.Current.Response.End();
    
//             #endregion
    
//         }

    
///   <summary>
    
///  刷新父窗口
    
///   </summary>
     public   static   void  RefreshParent( string  url, Page page)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    window.opener.location.href='
"   +  url  +   " ';window.close();</Script> " ;
        
// HttpContext.Current.Response.Write(js);
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " RefreshParent " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" RefreshParent " , js);
        }
        
#endregion
    }


    
///   <summary>
    
///  刷新打开窗口
    
///   </summary>
     public   static   void  RefreshOpener(Page page)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    opener.location.reload();
                  </Script>
" ;
        
// HttpContext.Current.Response.Write(js);
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " RefreshOpener " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" RefreshOpener " , js);
        }
        
#endregion
    }


    
///   <summary>
    
///  打开指定大小的新窗体
    
///   </summary>
    
///   <param name="url"> 地址 </param>
    
///   <param name="width"> </param>
    
///   <param name="heigth"> </param>
    
///   <param name="top"> 头位置 </param>
    
///   <param name="left"> 左位置 </param>
     public   static   void  OpenWebFormSize( string  url,  int  width,  int  heigth,  int  top,  int  left, Page page)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>window.open(' "   +  url  +   @" ','','height= "   +  heigth  +   " ,width= "   +  width  +   " ,top= "   +  top  +   " ,left= "   +  left  +   " ,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');</Script> " ;
        
// HttpContext.Current.Response.Write(js);
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " OpenWebFormSize " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" OpenWebFormSize " , js);
        }
        
#endregion
    }


    
///   <summary>
    
///  转向Url制定的页面
    
///   </summary>
    
///   <param name="url"> 连接地址 </param>
     public   static   void  JavaScriptLocationHref( string  url, Page page)
    {
        
#region
        
string  js  =   @" <Script language='JavaScript'>
                    window.location.replace('{0}');
                  </Script>
" ;
        js 
=   string .Format(js, url);
        
// HttpContext.Current.Response.Write(js);
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " JavaScriptLocationHref " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" JavaScriptLocationHref " , js);
        }
        
#endregion
    }

    
///   <summary>
    
///  打开指定大小位置的模式对话框
    
///   </summary>
    
///   <param name="webFormUrl"> 连接地址 </param>
    
///   <param name="width"> </param>
    
///   <param name="height"> </param>
    
///   <param name="top"> 距离上位置 </param>
    
///   <param name="left"> 距离左位置 </param>
     public   static   void  ShowModalDialogWindow( string  webFormUrl,  int  width,  int  height,  int  top,  int  left, Page page)
    {
        
#region
        
string  features  =   " dialogWidth: "   +  width.ToString()  +   " px "
            
+   " ;dialogHeight: "   +  height.ToString()  +   " px "
            
+   " ;dialogLeft: "   +  left.ToString()  +   " px "
            
+   " ;dialogTop: "   +  top.ToString()  +   " px "
            
+   " ;center:yes;help=no;resizable:no;status:no;scroll=yes " ;
        ShowModalDialogWindow(webFormUrl, features, page);
        
#endregion
    }
    
///   <summary>
    
///  弹出模态窗口
    
///   </summary>
    
///   <param name="webFormUrl"></param>
    
///   <param name="features"></param>
     public   static   void  ShowModalDialogWindow( string  webFormUrl,  string  features, Page page)
    {
        
string  js  =  ShowModalDialogJavascript(webFormUrl, features);
        
// HttpContext.Current.Response.Write(js);
         if  ( ! page.ClientScript.IsStartupScriptRegistered(page.GetType(),  " ShowModalDialogWindow " ))
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), 
" ShowModalDialogWindow " , js);
        }
    }
    
//          // / <summary>
    
//          // / 弹出模态窗口
    
//          // / </summary>
    
//          // / <param name="webFormUrl"></param>
    
//          // / <param name="features"></param>
    
//          // / <returns></returns>
    
//         public static string ShowModalDialogJavascript(string webFormUrl, string features)
    
//         {
    
//             #region
    
//             string js = @"<script language=javascript>                            
    
//     showModalDialog('" + webFormUrl + "','','" + features + "');</script>";
    
//             return js;
    
//             #endregion
    
//         }
     #endregion
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值