关于图片验证码设计的思考


Posted in Javascript onJanuary 29, 2007
自从读了《网站重构》这本书,现在对网站设计的思想有了根本性的改变。国内越来越多的媒体也极度关注WEB标准的进展情况,很多门户网站也开始使用符合标准的设计方法重新设计页面,像网易等。
这段时间正好在制作一个访谈系统,采用了符合W3C标准的布局方法,分别在IE5.5、IE6.0、IE7.0、Firefox 2.0、Opera 9.0环境下进行了测试,各不同厂商对CSS的理解也进一步趋于完善,这对于前台页面的制作人员减少了一定的工作量。
好了,归于正题,谈谈关于图片验证码设计的问题。
现在越来越多的网站的注册、发布等页面都采用了防止一些恶意程序的图片验证码选项,不知道大家有没有碰到这样的情况,一个注册表单,填写了帐号信息、个人信息,最后一项的验证码太模糊了竟然看不清,只能是重新刷新整个页面来刷新图片验证码的内容,这是一个不良好的交互设计。
参考了一些门户网站的方法,我的改进设计思路如下:
  1. 把验证码输入项放在表单的第一行;
  2. 客户端可以在不刷新整个页面的情况下更新图片验证码的内容。
    下面重点讲讲第2点的实现方法,以ASP为例吧(目前我只会ASP,^_^)。
    我们一般要插入验证码都是使用<img />标签,例如<img src="inc/code.asp" />,其中inc/code.asp是一个生成图片的程序文件。为了能够更新验证码的内容,可以在图片旁边加一个更新的链接,单击触发图片重载事件,完成图片验证码的更换。具体代码如下:
    HTML:
    <a href="javascript:reloadcode();" title="更换一张验证码图片"><img src="inc/code.asp" id="safecode" alt="看不清,请换一张" /></a> <a href="javascript:reloadcode();" title="更换一张验证码图片">看不清,请换一张</a>
    JavaScript:
    function reloadcode(){
    document.getElementById('safecode').src = 'inc/code.asp?' + Math.random();
    }

    关于图片验证码设计的思考
    我的一个设计界面

    注意,在reloadcode函数中,我们在code.asp后面加了一个随机参数,这样每次的链接地址都不一样,从而达到更新的目的。
    第一次写原创的文章,欢迎大家多多评论和指点。
    Javascript 相关文章推荐
    httpclient模拟登陆具体实现(使用js设置cookie)
    Dec 11 Javascript
    js实现浏览器窗口大小被改变时触发事件的方法
    Feb 02 Javascript
    简介JavaScript中Math.cos()余弦方法的使用
    Jun 15 Javascript
    12个非常实用的JavaScript小技巧【推荐】
    May 18 Javascript
    Jquery实时监听input value的实例
    Jan 26 Javascript
    快速实现jQuery多级菜单效果
    Feb 01 Javascript
    Vue2.0实现1.0的搜索过滤器功能实例代码
    Mar 20 Javascript
    最新Javascript程序员面试试题和解题方法
    Nov 23 Javascript
    vue2.0项目实现路由跳转的方法详解
    Jun 21 Javascript
    js实现同一个页面,多个enter事件绑定的示例
    Oct 10 Javascript
    基于vue.js组件实现分页效果
    Dec 29 Javascript
    Vue组件间数据传递的方式(3种)
    Jul 13 Javascript
    一些易混淆且不常用的属性,希望有用
    Jan 29 #Javascript
    WebGame《逆转裁判》完整版 代码下载(1月24日更新)
    Jan 29 #Javascript
    判断页面是关闭还是刷新的js代码
    Jan 28 #Javascript
    用JavaScript和注册表脚本实现右键收藏Web页选中文本
    Jan 28 #Javascript
    用js自动判断浏览器分辨率的代码
    Jan 28 #Javascript
    innerHTML,outerHTML,innerTEXT三者之间的区别
    Jan 28 #Javascript
    一个无限级XML绑定跨框架菜单(For IE)
    Jan 27 #Javascript
    You might like
    PHP的foreach中使用引用时需要注意的一个问题和解决方法
    2014/05/29 PHP
    PHP链接MySQL的常用扩展函数
    2014/10/23 PHP
    php 三元运算符实例详细介绍
    2016/12/15 PHP
    csdn 博客中实现运行代码功能实现
    2009/08/29 Javascript
    javascript 动态设置已知select的option的value值的代码
    2009/12/16 Javascript
    jquery ui dialog ie8出现滚动条的解决方法
    2010/12/06 Javascript
    javascript仿qq界面的折叠菜单实现代码
    2012/12/12 Javascript
    js跑马灯代码(自写)
    2013/04/17 Javascript
    jquery获取一组checkbox的值(实例代码)
    2013/11/04 Javascript
    javascript unicode与GBK2312(中文)编码转换方法
    2013/11/14 Javascript
    javascript内置对象arguments详解
    2014/03/16 Javascript
    jQuery实现的图片分组切换焦点图插件
    2015/01/06 Javascript
    js+cookies实现悬浮购物车的方法
    2015/05/25 Javascript
    javascript中if和switch,==和===详解
    2015/07/30 Javascript
    浅谈angular4实际项目搭建总结
    2017/12/01 Javascript
    jQuery插件实现的日历功能示例【附源码下载】
    2018/09/07 jQuery
    vue响应式系统之observe、watcher、dep的源码解析
    2019/04/09 Javascript
    [01:10]DOTA2次级职业联赛 - Fly战队宣传片
    2014/12/01 DOTA
    [55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
    2019/08/16 DOTA
    自己编程中遇到的Python错误和解决方法汇总整理
    2015/06/03 Python
    分享一下Python数据分析常用的8款工具
    2018/04/29 Python
    20行python代码的入门级小游戏的详解
    2019/05/05 Python
    ipad上运行python的方法步骤
    2019/10/12 Python
    利用Python的sympy包求解一元三次方程示例
    2019/11/22 Python
    使用Keras 实现查看model weights .h5 文件的内容
    2020/06/09 Python
    详解python中GPU版本的opencv常用方法介绍
    2020/07/24 Python
    python re的findall和finditer的区别详解
    2020/11/15 Python
    使用phonegap创建联系人的实现方法
    2017/03/30 HTML / CSS
    Nike香港官网:Nike HK
    2019/03/23 全球购物
    Hobbs官方网站:英国奢华女性时尚服装
    2020/02/22 全球购物
    编写用C语言实现的求n阶阶乘问题的递归算法
    2014/10/21 面试题
    函授毕业生的自我鉴定
    2013/11/26 职场文书
    英语专业个人求职信范文
    2014/02/01 职场文书
    农村老人去世追悼词
    2015/06/23 职场文书
    七年级上册生物的课件
    2019/08/07 职场文书
    《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
    2022/04/03 其他游戏