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


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之Math对象详解
    Jun 07 Javascript
    javascript jquery对form元素的常见操作详解
    Jun 12 Javascript
    jQuery事件绑定用法详解
    Sep 08 Javascript
    JavaScript数据结构之优先队列与循环队列实例详解
    Oct 27 Javascript
    axios发送post请求,提交图片类型表单数据方法
    Mar 16 Javascript
    VUE Error: getaddrinfo ENOTFOUND localhost
    May 03 Javascript
    VUE v-model表单数据双向绑定完整示例
    Jan 21 Javascript
    JS实现的新闻列表自动滚动效果示例
    Jan 30 Javascript
    jQuery分组选择器简单用法示例
    Apr 04 jQuery
    如何使用Node.js爬取任意网页资源并输出PDF文件到本地
    Jun 17 Javascript
    vue监听用户输入和点击功能
    Sep 27 Javascript
    javascript贪吃蛇游戏设计与实现
    Sep 17 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/06/29 PHP
    PHP防盗链的基本思想 防盗链的设置方法
    2015/09/25 PHP
    PHP面向对象程序设计之对象的遍历操作示例
    2019/06/12 PHP
    PHP预定义接口――Iterator用法示例
    2020/06/05 PHP
    详解phpstorm2020最新破解方法
    2020/09/17 PHP
    JavaScript 特殊字符
    2007/04/05 Javascript
    jquery CSS选择器笔记
    2010/03/29 Javascript
    Extjs列表详细信息窗口新建后自动加载解决方法
    2010/04/02 Javascript
    javascript时区函数介绍
    2012/09/14 Javascript
    ExtJS4 Grid改变单元格背景颜色及Column render学习
    2013/02/06 Javascript
    IE下window.onresize 多次调用与死循环bug处理方法介绍
    2013/11/12 Javascript
    JavaScript实现仿网易通行证表单验证
    2015/05/25 Javascript
    Jquery实现$.fn.extend和$.extend函数
    2016/04/14 Javascript
    JS控制静态页面传递参数并获取参数应用
    2016/08/10 Javascript
    Javascript highcharts 饼图显示数量和百分比实例代码
    2016/12/06 Javascript
    es6的数字处理的方法(5个)
    2017/03/16 Javascript
    Vue组件之Tooltip的示例代码
    2017/10/18 Javascript
    基于jquery的on和click的区别详解
    2018/01/15 jQuery
    vue项目中实现缓存的最佳方案详解
    2019/07/11 Javascript
    js实现指定时间倒计时效果
    2019/08/26 Javascript
    小程序双头slider选择器的实现示例
    2020/03/31 Javascript
    jQuery 实现DOM元素拖拽交换位置的实例代码
    2020/07/14 jQuery
    js制作提示框插件
    2020/12/24 Javascript
    Vue仿百度搜索功能
    2020/12/28 Vue.js
    基于Django的python验证码(实例讲解)
    2017/10/23 Python
    Python实现霍夫圆和椭圆变换代码详解
    2018/01/12 Python
    python matplotlib 在指定的两个点之间连线方法
    2018/05/25 Python
    selenium+python截图不成功的解决方法
    2019/01/30 Python
    Python上下文管理器用法及实例解析
    2019/11/11 Python
    python单向循环链表原理与实现方法示例
    2019/12/03 Python
    Python中求对数方法总结
    2020/03/10 Python
    Python爬虫之Selenium实现关闭浏览器
    2020/12/04 Python
    英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
    2018/04/19 全球购物
    西班牙床垫网上商店:Colchones.es
    2018/05/06 全球购物
    人力资源主管的岗位职责
    2014/03/15 职场文书
    JS实现数组去重的11种方法总结
    2022/04/04 Javascript