zoukankan      html  css  js  c++  java
  • 牛腩新闻发布系统——初探Javascript

             JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。在牛腩新闻发布系统中有一下应用。

    一、错误界面中的倒计时。

    aspx文件的Javascript代码:

     <script language ="javascript" type ="text/javascript" >
            var i = 5;
            var intervalid;
            intervalid = setInterval("fun()", 1000);
            function fun() {
                if (i == 0) {
                    window.location.href = "Default.aspx";
                    clearInterval(intervalid);
                }
                document.getElementById("mes").innerHTML = i;
                i--;
            }
    </script>
      <p>将在<span id="mes">5</span>秒钟返回界面</p>
    

    
    


     

    二、验证码。

    先建立一个一般处理程序。代码如下:

    <%@ WebHandler Language="C#" Class="WaterMark" %>
    
    
    using System;
    using System.Web;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Web.SessionState;  
    
    public class WaterMark : IHttpHandler, IRequiresSessionState  // 要使用session必须实现该接口,记得要导入System.Web.SessionState命名空间
    {
    
        public void ProcessRequest(HttpContext context)
        {
            string checkCode = GenCode(5);  // 产生5位随机字符
            context.Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证
            System.Drawing.Bitmap image = new System.Drawing.Bitmap(70, 22);
            Graphics g = Graphics.FromImage(image);
            try
            {
                //生成随机生成器
                Random random = new Random();
    
                //清空图片背景色
                g.Clear(Color.White);
    
                // 画图片的背景噪音线
                int i;
                for (i = 0; i < 25; i++)
                {
                    int x1 = random.Next(image.Width);
                    int x2 = random.Next(image.Width);
                    int y1 = random.Next(image.Height);
                    int y2 = random.Next(image.Height);
                    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
                }
    
                Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));
                System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, true);
                g.DrawString(checkCode, font, brush, 2, 2);
    
                //画图片的前景噪音点
                g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                context.Response.ClearContent();
                context.Response.ContentType = "image/Gif";
                context.Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }
    
        /// <summary>
        /// 产生随机字符串
        /// </summary>
        /// <param name="num">随机出几个字符</param>
        /// <returns>随机出的字符串</returns>
        private string GenCode(int num)
        {
            string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            char[] chastr = str.ToCharArray();
            // string[] source ={ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", "$", "%", "&", "@" };
            string code = "";
            Random rd = new Random();
            int i;
            for (i = 0; i < num; i++)
            {
                //code += source[rd.Next(0, source.Length)];
                code += str.Substring(rd.Next(0, str.Length), 1);
            }
            return code;
    
        }
    
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    
    }
    

    Aspx的代码:

    开头有一段Javascript的代码:
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <script language ="javascript" type ="text/javascript">
            function changeCode() {
            var imgNode = document.getElementById("vimg");
            imgNode.src = "WaterMark.ashx?t=" + (new Date()).valueOf(); // 这里加个时间的参数为了防止浏览器缓存的问题  
        }  
    </script>
      <p>
            验证码:<a name="com"> </a><img src="WaterMark.ashx" id="vimg" alt="" onclick ="changeCode()" />
            <asp:TextBox ID="txtCode" ValidationGroup ="pinglun"  runat="server" CssClass ="txtCode"></asp:TextBox>
              <asp:RequiredFieldValidator ValidationGroup ="pinglun"  ID="RequiredFieldValidator1" runat="server"  ControlToValidate ="txtCode" ErrorMessage="请输入验证码"  Text ="*"></asp:RequiredFieldValidator>
            <asp:Button ID="BtnSub" ValidationGroup ="pinglun" runat="server" Text="提交" onclick="BtnSub_Click" />
            <asp:ValidationSummary ValidationGroup ="pinglun" ID="ValidationSummary1" runat="server" ShowMessageBox="true" ShowSummary ="false"   />
            </p>
    



     

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    分层图最短路(DP思想) BZOJ2662 [BeiJing wc2012]冻结
    动态规划 BZOJ1925 地精部落
    线性DP SPOJ Mobile Service
    线性DP codevs2185 最长公共上升子序列
    数位DP POJ3208 Apocalypse Someday
    线性DP POJ3666 Making the Grade
    杨氏矩阵 线性DP? POJ2279 Mr.Young's Picture Permutations
    tarjan强连通分量 洛谷P1262 间谍网络
    树链剖分 BZOJ3589 动态树
    二分图 BZOJ4554 [Tjoi2016&Heoi2016]游戏
  • 原文地址:https://www.cnblogs.com/iplus/p/4490459.html
Copyright © 2011-2022 走看看