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


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 相关文章推荐
    使用SyntaxHighlighter实现HTML高亮显示代码的方法
    Feb 04 Javascript
    Jquery UI震动效果实现原理及步骤
    Feb 04 Javascript
    jQuery+canvas实现的球体平抛及颜色动态变换效果
    Jan 28 Javascript
    原生javascript实现解析XML文档与字符串
    Mar 01 Javascript
    AngularJS基础 ng-open 指令简单实例
    Aug 02 Javascript
    javascript函数中的3个高级技巧
    Sep 22 Javascript
    微信公众号菜单配置微信小程序实例详解
    Mar 31 Javascript
    vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
    Jan 25 Javascript
    JS设计模式之状态模式概念与用法分析
    Feb 05 Javascript
    浅谈如何通过node.js对数据进行MD5加密
    May 16 Javascript
    优化Vue项目编译文件大小的方法步骤
    May 27 Javascript
    JavaScript/TypeScript 实现并发请求控制的示例代码
    Jan 18 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(7) php 字符串相关应用
    2010/03/05 PHP
    PHP5 字符串处理函数大全
    2010/03/23 PHP
    各种快递查询--Api接口
    2016/04/26 PHP
    CI框架支持$_GET的两种实现方法
    2016/05/18 PHP
    php入门教程之Zend Studio设置与开发实例
    2016/09/09 PHP
    ExtJs使用总结(非常详细)
    2012/03/22 Javascript
    jQuery提交多个表单的小例子
    2013/06/30 Javascript
    js获取判断上传文件后缀名的示例代码
    2014/02/19 Javascript
    jquery实现select选中行、列合计示例
    2014/04/25 Javascript
    new Date()问题在ie8下面的处理方法
    2014/07/31 Javascript
    基于JQuery制作可编辑的表格特效
    2014/12/23 Javascript
    js设置document.domain实现跨域的注意点分析
    2015/05/21 Javascript
    JSON字符串和对象之间的转换详解
    2015/05/26 Javascript
    详解JavaScript中的异常处理方法
    2015/06/16 Javascript
    js闭包引起的事件注册问题介绍
    2016/03/29 Javascript
    js插件dropload上拉下滑加载数据实例解析
    2016/07/27 Javascript
    js实现点击图片自动提交action的简单方法
    2016/10/16 Javascript
    初探JavaScript 面向对象(推荐)
    2017/09/03 Javascript
    jQuery实现的手动拖动控制进度条效果示例【测试可用】
    2018/04/18 jQuery
    Javascript前端下载后台传来的文件流代码实例
    2020/08/18 Javascript
    Node在Controller层进行数据校验的过程详解
    2020/08/28 Javascript
    Nuxt.js 静态资源和打包的操作
    2020/11/06 Javascript
    Python实现在Linux系统下更改当前进程运行用户
    2015/02/04 Python
    python yield关键词案例测试
    2019/10/15 Python
    keras的load_model实现加载含有参数的自定义模型
    2020/06/22 Python
    如何在python中判断变量的类型
    2020/07/29 Python
    爱他美官方海外旗舰店:Aptamil奶粉
    2017/12/22 全球购物
    Visual-Click葡萄牙:欧洲领先的在线眼镜商
    2020/02/17 全球购物
    LINUX下线程,GDI类的解释
    2016/12/14 面试题
    毕业生机械建模求职信
    2013/10/14 职场文书
    家居设计专业个人自荐信范文
    2013/11/26 职场文书
    客服专员岗位职责
    2014/02/28 职场文书
    Django开发RESTful API实现增删改查(入门级)
    2021/05/10 Python
    Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
    2021/06/04 Oracle
    python 中的jieba分词库
    2021/11/23 Python
    python使用shell脚本创建kafka连接器
    2022/04/29 Python