博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET中常用输出JS脚本的类(改进版)
阅读量:5967 次
发布时间:2019-06-19

本文共 10702 字,大约阅读时间需要 35 分钟。

在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
}
本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/167028,如需转载请自行联系原作者
你可能感兴趣的文章
maya pyside 多个窗口实例 报错 解决
查看>>
Nginx错误日志(error_log)配置及信息详解
查看>>
我的友情链接
查看>>
通知中心
查看>>
我的友情链接
查看>>
MVC中的三个模块
查看>>
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
查看>>
oracle 常用命令大汇总
查看>>
2012年春运火车票电话和网上订票技巧、攻略
查看>>
根据request获取请求路径
查看>>
mysql 并行复制
查看>>
傲不可长,欲不可纵,乐不可极,志不可满——提高个人修养
查看>>
linux系统增加swap容量的方法
查看>>
后台调用gps
查看>>
HTML5标签的语义认知和理解(1)
查看>>
MySQL日志功能详解(2)
查看>>
HP LaserJet 305X 和 339X 系列一体机如何设置手动或自动接收传真?
查看>>
linux之权限之隐藏权限
查看>>
XDCTF成长记录
查看>>
registered the JDBC driver [com.mysql.jdbc.Driver]
查看>>