在ASM系统中经常用到的一些JS,打算在接下来准备开发的一个系统中用到。代码内容如下:

C#代码
  1. using System;      
  2. using System.Data;      
  3. using System.Configuration;      
  4. using System.Web;      
  5. using System.Web.Security;      
  6. using System.Web.UI;      
  7. using System.Web.UI.WebControls;      
  8. using System.Web.UI.WebControls.WebParts;      
  9. using System.Web.UI.HtmlControls;      
  10. using System.Text;      
  11.      
  12. /// <summary>      
  13. /// JavascriptHelper 的摘要说明      
  14. /// </summary>      
  15. public static class JS      
  16. {      
  17.     public static Page CurrPage      
  18.     {      
  19.         get     
  20.         {      
  21.             return HttpContext.Current.Handler as Page;      
  22.         }      
  23.     }      
  24.   
  25.     /// <summary>      
  26.     /// 向一个控件添加一个确认对话框.(如果取消则不提交服务器端)      
  27.     /// </summary>      
  28.     /// <param name="control">需要添加确认的控件</param>      
  29.     /// <param name="message">对话框中显示的文本</param>      
  30.     public static void AddConfirmToControl(IAttributeAccessor control, string message)      
  31.     {      
  32.         message = message.Replace("\\", "\\\\").Replace("\n", "\\n").Replace("\‘", "\\’");    
  33.         control.SetAttribute("onclick", "return confirm(‘" + message + "‘);");    
  34.     }    
  35.    
  36.  
  37.     /// <summary>    
  38.     /// 直接关闭页面(忽略其他提示)    
  39.     /// </summary>    
  40.     public static void ClosePage()    
  41.     {    
  42.         HttpContext.Current.Response.Write(@"<script>window.opener=null;window.close();</script>");    
  43.         HttpContext.Current.Response.End();    
  44.     }    
  45.    
  46.  
  47.     /// <summary>    
  48.     /// 给控件增加客户端属性    
  49.     /// </summary>    
  50.     /// <param name="control">控件</param>    
  51.     /// <param name="attributeName">属性名</param>    
  52.     /// <param name="attributeValue">属性值</param>    
  53.     /// <example>    
  54.     /// JS.AddAttributesToControl(TextBox1,"oncopy","return false;");  –生成的客户端html中增加  oncopy="return false;"    
  55.     /// </example>    
  56.     public static void AddAttributesToControl(IAttributeAccessor control, string attributeName, string attributeValue)    
  57.     {    
  58.         control.SetAttribute(attributeName, attributeValue);    
  59.     }    
  60.    
  61.  
  62.     /// <summary>    
  63.     /// 添加要执行的脚本    
  64.     /// </summary>    
  65.     /// <param name="scripts">脚本内容</param>    
  66.     /// <param name="key">脚本的键(如果该键已有则不重复创建)</param>    
  67.     public static void AddScript(string scripts, string key)    
  68.     {    
  69.         StringBuilder sb = new StringBuilder("<script language=’javascript‘>");    
  70.         sb.Append(scripts);    
  71.         sb.Replace("\\", "\\\\");    
  72.         sb.Replace("\n", "\\n");    
  73.         sb.Replace("\t", "\\t");    
  74.         sb.Replace("\r", "\\r");    
  75.         sb.Append("</script>");    
  76.         CurrPage.ClientScript.RegisterStartupScript(CurrPage.GetType(), key, sb.ToString());    
  77.     }    
  78.    
  79.     /// <summary>    
  80.     /// 打开窗口(不允许一个页面打开多个窗口)    
  81.     /// </summary>    
  82.     /// <param name="page">this</param>    
  83.     /// <param name="URL">地址</param>    
  84.     /// <param name="Target">目标框架</param>    
  85.     public static void open(string url, string target)    
  86.     {    
  87.         AddScript("window.open(‘" + url + "‘,’" + target + "‘);", "redirect");    
  88.     }    
  89.  
  90.     /// <summary>    
  91.     /// 打开一个窗口(弹出窗口的菜单栏、工具栏和地址栏等被屏蔽)    
  92.     /// </summary>    
  93.     /// <param name="url">目标窗口URL</param>    
  94.     /// <param name="width">窗口宽度</param>    
  95.     /// <param name="height">窗口高度</param>    
  96.     public static void open(string url, int width, int height)    
  97.     {    
  98.         string s = string.Format("<script language=’javascript‘>window.open(\"{0}\",\"_blank\",\"height={1},width={2},top=100,left=100,toolbar=no,menubar=no,scrollbars=yes, resizable=yes,location=no, status=yes\");</script>", url, height, width);    
  99.         CurrPage.ClientScript.RegisterStartupScript(CurrPage.GetType(), null, s, false);    
  100.     }    
  101.    
  102.     /// <summary>    
  103.     /// 跳转页面    
  104.     /// </summary>    
  105.     /// <param name="url">地址</param>    
  106.     public static void location(string url)    
  107.     {    
  108.         AddScript("window.location.href=’" + url + "’;""redirect");      
  109.     }      
  110.      
  111.     /// <summary>      
  112.     /// 在页面顶部添加脚本      
  113.     /// </summary>      
  114.     /// <param name="values">脚本</param>      
  115.     public static void AddHead(string script)      
  116.     {      
  117.         StringBuilder sb = new StringBuilder("<script language=\"javascript\">");      
  118.         sb.Append(script);      
  119.         sb.Append("</script>");      
  120.         CurrPage.Response.Write(sb.ToString());      
  121.     }      
  122.      
  123.     /// <summary>      
  124.     /// 弹出      
  125.     /// </summary>      
  126.     /// <param name="Msg">提示文本</param>      
  127.     public static void alert(string message)      
  128.     {      
  129.         AddScript("alert(\"" + message + "\");""alert");      
  130.     }      
  131.   
  132.      
  133.     /// <summary>      
  134.     /// 带有图标的弹出窗口      
  135.     /// </summary>      
  136.     /// <param name="Icon">1 信息  2 错误  3警告</param>      
  137.     /// <param name="Message">弹出的信息内容</param>      
  138.     public static void alert(int Icon, string Message)      
  139.     {      
  140.         StringBuilder sb = new StringBuilder();      
  141.         Message = Message.Replace("\"""\u201c");      
  142.         Message = Message.Replace("’""\u2018");      
  143.         sb.Append("<script language=vbscript>\n");      
  144.         switch (Icon)      
  145.         {      
  146.             case 1:      
  147.                 sb.Append("msgbox \"" + Message + "\",\"64\"\n");      
  148.                 break;      
  149.      
  150.             case 2:      
  151.                 sb.Append("msgbox \"" + Message + "\",\"16\"\n");      
  152.                 break;      
  153.      
  154.             case 3:      
  155.                 sb.Append("msgbox \"" + Message + "\",\"48\"\n");      
  156.                 break;      
  157.         }      
  158.         sb.Append("</script>");      
  159.         CurrPage.ClientScript.RegisterStartupScript(typeof(string), "ALERT", sb.ToString());      
  160.     }      
  161.      
  162.   
  163.      
  164.     /// <summary>      
  165.     /// 弹出提示并跳转页面      
  166.     /// </summary>      
  167.     /// <param name="page">this</param>      
  168.     /// <param name="Msg">提示信息</param>      
  169.     /// <param name="URL">跳转地址</param>      
  170.     /// <param name="Target">目标框架</param>      
  171.     public static void AlertAndRedirect(string message, string url, string target)      
  172.     {      
  173.         alert(message);      
  174.         open(url, target);      
  175.     }      
  176.   
  177.   
  178.     /// <summary>      
  179.     ///先弹出提示框后跳转      
  180.     /// </summary>      
  181.     /// <param name="message"></param>      
  182.     /// <param name="url"></param>      
  183.     public static void AlertAndRedirect(string message, string url)      
  184.     {      
  185.         alert(message);      
  186.         location(url);      
  187.     }      
  188.     /// <summary>      
  189.     /// 获取客户端IP地址      
  190.     /// </summary>      
  191.     /// <returns></returns>      
  192.     public static string GetClientIP()      
  193.     {      
  194.         return HttpContext.Current.Request.UserHostAddress;      
  195.     }      
  196.      
  197.     /// <summary>      
  198.     /// 刷新父窗口      
  199.     /// </summary>      
  200.     public static void refreshParent(string strIndex)      
  201.     {      
  202.      
  203.         HttpContext.Current.Response.Write("<script language=javascript>var str=window.opener.location.href; var ch=str.indexOf(\"?\"); if(ch>=0){var i=str.indexOf(\"?index\");if(i<0){i=str.indexOf(\"&index\")} if (i>=0){i=i+1;var strTmp = str.substr(i);var itemp = strTmp.indexOf(\"&\");if(itemp>0){strTmp=strTmp.substr(itemp);}str=str.replace(strTmp, \"\");}else{str+=\"&\";}}else{str+=\"?\";}str += \"index=" + strIndex + "\"; opener.document.location=str; window.close();</script>");      
  204.     }     
  205. }