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


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 相关文章推荐
    javascript改变position值实现菜单滚动至顶部后固定
    Jan 18 Javascript
    模拟电子签章盖章效果的jQuery插件源码
    Jun 24 Javascript
    如何学习Javascript入门指导
    Nov 01 Javascript
    js网页右下角提示框实例
    Oct 14 Javascript
    echarts3 使用总结(绘制各种图表,地图)
    Jan 05 Javascript
    浅谈Angular2 ng-content 指令在组件中嵌入内容
    Aug 18 Javascript
    pace.js和NProgress.js两个加载进度插件的一点小总结
    Jan 31 Javascript
    vue v-model实现自定义样式多选与单选功能
    Jul 05 Javascript
    Vue 实现从文件中获取文本信息的方法详解
    Oct 16 Javascript
    js实现select下拉框选择
    Jan 11 Javascript
    jquery+ajax实现异步上传文件显示进度条
    Aug 17 jQuery
    原生js中运算符及流程控制示例详解
    Jan 05 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实现长连接的方法与注意事项的问题
    2013/05/10 PHP
    PHP flush 函数使用注意事项
    2016/08/26 PHP
    PHP实现的微信APP支付功能示例【基于TP5框架】
    2019/09/16 PHP
    jQuery 第二课 操作包装集元素代码
    2010/03/14 Javascript
    载入jQuery库的最佳方法详细说明及实现代码
    2012/12/28 Javascript
    js事件监听机制(事件捕获)总结
    2014/08/08 Javascript
    js实现的后台左侧管理菜单代码
    2015/09/11 Javascript
    基于javascript bootstrap实现生日日期联动选择
    2016/04/07 Javascript
    js 基础篇必看(点击事件轮播图的简单实现)
    2016/08/20 Javascript
    Vue.js展示AJAX数据简单示例讲解
    2017/03/29 Javascript
    解决JQuery全选/反选第二次失效的问题
    2017/10/11 jQuery
    element-ui中select组件绑定值改变,触发change事件方法
    2018/08/24 Javascript
    json 带斜杠时如何解析的实现
    2019/08/12 Javascript
    解决vue页面渲染但dom没渲染的操作
    2020/07/27 Javascript
    jquery实现淡入淡出轮播图效果
    2020/12/13 jQuery
    js实现类选择器和name属性选择器的示例步骤
    2021/02/07 Javascript
    [02:17]2016国际邀请赛中国区预选赛VG战队领队采访
    2016/06/26 DOTA
    Python常见数据结构之栈与队列用法示例
    2019/01/14 Python
    详解python:time模块用法
    2019/03/25 Python
    python定时任务 sched模块用法实例
    2019/11/04 Python
    python pip安装包出现:Failed building wheel for xxx错误的解决
    2019/12/25 Python
    Python爬虫之App爬虫视频下载的实现
    2020/12/08 Python
    Python 随机按键模拟2小时
    2020/12/30 Python
    意大利高端时尚买手店:Stefania Mode
    2018/03/01 全球购物
    Nike德国官网:Nike.com (DE)
    2018/11/13 全球购物
    Dyson戴森波兰官网:Dyson.pl
    2019/08/05 全球购物
    台湾7-ELEVEN线上购物中心:7-11
    2021/01/21 全球购物
    梅西百货官网:Macy’s
    2020/08/04 全球购物
    前台文员岗位职责及工作流程
    2013/11/19 职场文书
    机电一体化专业推荐信
    2013/12/03 职场文书
    建筑专业自荐信范文
    2014/01/05 职场文书
    个人贷款承诺书
    2014/03/28 职场文书
    2019大学生社会实践报告汇总
    2019/08/16 职场文书
    idea搭建可运行Servlet的Web项目
    2021/06/26 Java/Android
    Python内置数据类型中的集合详解
    2022/03/18 Python
    详解Flutter自定义应用程序内键盘的实现方法
    2022/06/14 Java/Android