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
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql从库夯住_MySQL从库维护经验分享

前言&#xff1a;MySQL 主从架构应该是最常用的一组架构了。从库会实时同步主库传输来的数据&#xff0c;一般从库可以作为备用节点或作查询使用。其实不只是主库需要多关注&#xff0c;从库有时候也要经常维护&#xff0c;本篇文章将会分享几点从库维护经验&#xff0c;一起来…

python frame用法_python—dataframe用法

#行处理 #df.iloc[1] 行索引号——获取行 #df.iloc[0,1] 行列索引号——获取一个元素 #df.iloc[[0,1]] 双括号默认都是行索引号——获取n行 #df.iloc[0:2,1:3] 行列索引号——获取区域元素 #df.loc["A"] 行名称——获取行 #df.loc["A","c1"] 行列…

什么时候我们应谈及性能?

【导读】实际项目开发中、有部分童鞋可能无时无刻都在关注性能&#xff0c;那么我们到底应该什么时候关注性能呢&#xff1f;个人以为&#xff0c;性能并非一次性就可完全成全&#xff0c;需结合实际业务有一个大致评估或预期&#xff0c;比如数据量大小&#xff0c;若预期短暂…

基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历

http://blog.csdn.net/dongfengsun/archive/2007/12/12/1930577.aspx 上次用J2SE写了一个文件夹传递工具,把所有文件都以字节流的形式写入到一个*.txt文件里。结果回到家后,光分目录筛选文件就浪费了我整整一个晚上。痛定思痛,决定还是从程序上来解决问题。 那么所有的磁盘文件…

python编写正则表达式匹配单词_Python正则表达式匹配整个单词

守候你守候我 我认为&#xff0c;通过给出的答案&#xff0c;OP所期望的行为并没有完全实现。具体来说&#xff0c;布尔值的期望输出没有完成。给出的答案做帮助说明这一概念&#xff0c;我认为他们是优秀的。也许我可以说明我的意思&#xff0c;我认为OP使用了下面的例子。给出…

python中可以表示任意大的整数_Python无法表示99999999999999999999这样大的整数。

被邓为“小平和国一部意义义的具有际意称赞法律历史&#xff0c;无法”的性的一个具有杰作创造“是是(。表示。对于的容性要密封求高器&#xff0c;样整数包括性试验的要求中应进行气密各种。无法喷涂金属及工具有设备。吊装台起用多重机设备时&#xff0c;表示为(吊装用的常采…

数据写入规则IBufferWriterT

IBufferWriter<T>从名字上看大概已经猜到作用&#xff0c;这个接口是在.NET Standard 2.1作为标准支持。那这个接口的实际使用场和作用是什么&#xff1f;在了解之前先看一下System.Text.Json的一些代码:public sealed class Utf8JsonWriter : IAsyncDisposable, IDispos…

[转]简单介绍如何用Reporting Service制作报表

1&#xff09; 在安装好Reporting Service后&#xff0c;打开Visual studio .net ,选择新建项目&#xff0c;选择建立商业智能项目&#xff0c;选择新建一个报表项目&#xff0c;命名为reportservice1,再选确定&#xff0c;如下图&#xff1a; 2&#xff09;之后&#xff0c;在…

freertos源码详解与应用开发 pdf_互联网企业面试必问Spring源码?搞定Spring源码,看完这篇就够了...

不用说&#xff0c;Spring已经成为Java后端开发的事实上的行业标准。无数公司选择Spring作为基本开发框架。大多数Java后端程序员在日常工作中也会接触到Spring。因此&#xff0c;如何很好地使用Spring&#xff0c;已成为Java程序员的必修课之一。同时&#xff0c;Spring Boot和…

adonis.js mysql_Adonis.js——数据库基本操作

一、配置数据库adonis支持 PostgreSQL&#xff0c;SQLite&#xff0c;MySQL&#xff0c;MariaDB&#xff0c;Oracle&#xff0c;MSSQL 数据库&#xff0c;默认为SQLite。在 config/database 中修改配置。connection: Env.get(DB_CONNECTION, mysql),二、创建数据库模型(Model)λ…

C# ObservableCollection和List的区别

一、ObservableCollection和List的区别1&#xff09;ObservableCollection比较简单&#xff0c;继承了Collection, INotifyCollectionChanged, INotifyPropertyChangedCollection&#xff1a;为泛型集合提供基类。INotifyCollectionChanged&#xff1a;将集合的动态更改通知给侦…

MS-SQLSERVER--错用了LEN()函数

sqlserver数据导入oracle时发现字符长度不对。。下面是两个函数的区别&#xff1a;DATALENGTH 返回任何表达式所占用的字节数。LEN 返回给定字符串表达式的字符&#xff08;而不是字节&#xff09;个数&#xff0c;其中不包含尾随空格转载于:https://www.cnblogs.com/yooplmqj/…

rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)

原文托管在Github: https://github.com/shellhub/blog/issues/52数据结构与算法之线性表-顺序表实现(C语言版本)前言数据结构与算法是一个程序员必备的技能之一,而顺序表更是每个程序员在面试过程中要经常被问到的&#xff0c;如Java语言中的ArrayList类的底层实现就是使用顺序…

浅析 record 使用场景

浅析 record 使用场景Intro之前我们有介绍过 record 基本知识&#xff0c;可以参考 C# 9 新特性 — record 解读&#xff0c;record 会实现基于值的类型比较&#xff0c;最近遇到的几个问题觉得用 record 来解决会非常方便&#xff0c;分享一下基于值的类型比较最近有遇到一个场…

jax rs mysql_Jersey / JAX-RS ExceptionMapper MySQL

我正在学习Jersey / JAX-RS&#xff0c;我需要一些ExceptionMapper的帮助 .我有一个UserFacade类&#xff0c;AbstractFacade类和User类本身&#xff0c;都非常标准&#xff0c;主要是通过在Netbeans中创建一个带有Database的新Web Service RestFUL项目生成的 . 我的问题是&…

hadoop安装详细步骤_推荐一个超详细的Hadoop安装教程,已有32万次阅读

安装Hadoop软件系列&#xff0c;首选Linux系统&#xff0c;比如Ubuntu。如果你的系统是Windows&#xff0c;建议再安装一个Ubuntu&#xff0c;组成双系统&#xff0c;如此可以发挥各自系统的特点。使用U盘制作一个系统&#xff0c;拿出一块分区用作新装的系统&#xff0c;开机启…

后宫佳丽三千,假如古代皇帝也懂负载均衡算法...

古代皇帝&#xff0c;后宫佳丽三千&#xff0c;没法做到雨露均沾&#xff0c;但为了繁衍后代&#xff0c;子嗣繁盛&#xff0c;弱水三千&#xff0c;只取一瓢饮显然是不行的。不同的朝代有不同的宠幸妃子的方法&#xff0c;著名的有羊车望幸、掷筛侍寝、翻牌悬灯等等。如果皇帝…

常见DDoS技术方法和对应防御措施

DDOS***是现在最常见的一种******方式&#xff0c;下面就给大家简单介绍一下DDOS的七种***方式。 1.Synflood: 该***以多个随机的源主机地址向目的主机发送SYN包&#xff0c;而在收到目的主机的SYN ACK后并不回应&#xff0c;这样&#xff0c;目的主机就为这些源主机建立了大…

mac 配置php和mysql_Mac下配置PHP+MySql环境

由于最近需要布置mantis用来进行bug追踪&#xff0c;在此记录其过程。由于PHP apache环境在Mac OS上是自带的&#xff0c;所以不需要另处下安装包&#xff0c;只需要简单配置一下即可。首先打开终端输入命令&#xff1a;sudo vim /etc/apache2/httpd.conf其中有一行是这样的#Lo…

git使用的基本流程_git命令的基本使用

首先下载完git之后打开Git Bash配置你的邮箱和用户名&#xff08;github或gitee&#xff09;&#xff1a;$ git config --global user.name "注册时账号的名字"$ git config --global user.email "注册时使用的邮箱"获取ssh公钥&#xff1a;ssh-keygen -t …