http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 26451|回复: 20
打印 上一主题 下一主题

[功能帮助类] JsHelper--Javascript操作帮助类

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-11 12:55:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                            JsHelper--Javascript操作帮助类
导读部分
-------------------------------------------------------------------------------------------------------------
C#基类库苏飞版--系列教程导航 http://www.sufeinet.com/thread-655-1-1.html

下载之前你首先要注册成为会员哦,注册之后就可以直接下载啦
更新时间:2012-12-09
最新的JsHelper类下载:
JsHelper.rar (930 Bytes, 下载次数: 275)
这个类是关于加密,解密的操作,文件的一些高级操作
1.Javascript弹出信息,并跳转指定页面。 
2.Javascript弹出信息,并返回历史页面
3.Javascript直接跳转到指定的页面
4.Javascript弹出信息 并指定到父窗口
5.Javascript返回到父窗口
6.Javascript返回历史页面
7.Javascript弹出信息
8.Javascript注册脚本块
看下面代码吧
[C#] 纯文本查看 复制代码
/// <summary>
/// 类说明:Assistant
/// 编 码 人:苏飞
/// 联系方式:361983679  
/// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http://www.sufeinet.com/thread-655-1-1.html[/url]
/// </summary>
using System.Web;

namespace DotNet.Utilities
{
    /// <summary>
    /// 客户端脚本输出
    /// </summary>
    public class JsHelper
    {
        /// <summary>
        /// 弹出信息,并跳转指定页面。
        /// </summary>
        public static void AlertAndRedirect(string message, string toURL)
        {
            string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
            HttpContext.Current.Response.Write(string.Format(js, message, toURL));
            HttpContext.Current.Response.End();
        }

        /// <summary>
        /// 弹出信息,并返回历史页面
        /// </summary>
        public static void AlertAndGoHistory(string message, int value)
        {
            string js = @"<Script language='JavaScript'>alert('{0}');history.go({1});</Script>";
            HttpContext.Current.Response.Write(string.Format(js, message, value));
            HttpContext.Current.Response.End();
        }

        /// <summary>
        /// 直接跳转到指定的页面
        /// </summary>
        public static void Redirect(string toUrl)
        {
            string js = @"<script language=javascript>window.location.replace('{0}')</script>";
            HttpContext.Current.Response.Write(string.Format(js, toUrl));
        }

        /// <summary>
        /// 弹出信息 并指定到父窗口
        /// </summary>
        public static void AlertAndParentUrl(string message, string toURL)
        {
            string js = "<script language=javascript>alert('{0}');window.top.location.replace('{1}')</script>";
            HttpContext.Current.Response.Write(string.Format(js, message, toURL));
        }

        /// <summary>
        /// 返回到父窗口
        /// </summary>
        public static void ParentRedirect(string ToUrl)
        {
            string js = "<script language=javascript>window.top.location.replace('{0}')</script>";
            HttpContext.Current.Response.Write(string.Format(js, ToUrl));
        }

        /// <summary>
        /// 返回历史页面
        /// </summary>
        public static void BackHistory(int value)
        {
            string js = @"<Script language='JavaScript'>history.go({0});</Script>";
            HttpContext.Current.Response.Write(string.Format(js, value));
            HttpContext.Current.Response.End();
        }

        /// <summary>
        /// 弹出信息
        /// </summary>
        public static void Alert(string message)
        {
            string js = "<script language=javascript>alert('{0}');</script>";
            HttpContext.Current.Response.Write(string.Format(js, message));
        }

        /// <summary>
        /// 注册脚本块
        /// </summary>
        public static void RegisterScriptBlock(System.Web.UI.Page page, string _ScriptString)
        {
            page.ClientScript.RegisterStartupScript(page.GetType(), "scriptblock", "<script type='text/javascript'>" + _ScriptString + "</script>");
        }
    }
}



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
沙发
发表于 2012-12-19 19:44:00 | 只看该作者
总结的挺好
板凳
 发表于 2012-12-19 20:35:56
转播微博[tthread=huangjiale3954, 乐]http://app.qlogo.cn/mbloghead/0d800a3b0db795224a42[/tthread]
地板
 发表于 2012-12-19 20:35:57
七[tthread=huangjiale3954, 乐]http://app.qlogo.cn/mbloghead/0d800a3b0db795224a42[/tthread]
5
 发表于 2012-12-19 20:35:58
一[tthread=huangjiale3954, 乐]http://app.qlogo.cn/mbloghead/0d800a3b0db795224a42[/tthread]
6
 楼主| 发表于 2012-12-19 20:36:51 | 只看该作者
微笑 发表于 2012-12-19 19:44
总结的挺好

我已提供打包下载
7
发表于 2012-12-22 22:43:18 | 只看该作者
admin 发表于 2012-12-19 20:36
我已提供打包下载

good !
8
发表于 2013-2-25 07:41:52 | 只看该作者
这个里面都是HttpContext.Current.Response.Write会导致页面变形,还是要用RegisterStartupScript或者RegisterClientScriptBlock吧,不过有个问题想问下,例如这样写函数(网上流行版本):
[code=csharp]    #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
     }[/code]
这样的话我如果同一个页面想调用两次Alert就只能办出第一次的提示而已。。。
1、因为RegisterStartupScript和RegisterClientScriptBlock这两个函数都有key参数,上面的函数没有将key当成参数,所以同一page同一key会被认为是同一脚本。
2、如果在上面增加key作为参数,在调用的时候还得写个key参上去,感觉挺不爽的。
3、有种做法就是预定在页面放一个控件,将脚本输出到这个控件,但这个也需要配一个控件来运行脚本,感觉也不爽。最好调用的时候只写内容就弹框这样用起来感觉最适合了,最主要是弄好页面不变形和这个key导致的脚本重复。
请问,楼主有什么办法吗?
9
发表于 2013-2-25 08:05:48 | 只看该作者
[code=csharp]        public static void Alert(string message, Page page)
        {
            #region
            string js = @"<script language='javascript'>
                     alert('" + message + "');</script>";
            page.Controls.Add(new System.Web.UI.LiteralControl(js));
            #endregion
        }[/code]
这样写勉强凑合着用,不过查看html代码的时候,ca,真丑陋,js代码在</html>的后面了,而且写了多少段脚本就会有多少个script标签。。。
10
 楼主| 发表于 2013-2-25 10:01:28 | 只看该作者
scyyzgxh 发表于 2013-2-25 08:05
这样写勉强凑合着用,不过查看html代码的时候,ca,真丑陋,js代码在的后面了,而且写了多少段脚本就会有 ...

在JS里写个函数,在CS里进行用就行了,这些可以解决你的问题,后台只需要传值就可以了。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-21 21:58

© 2014-2021

快速回复 返回顶部 返回列表