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


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之大字符串的连接的StringBuffer 类
    May 08 Javascript
    jQuery中使用Ajax获取JSON格式数据示例代码
    Nov 26 Javascript
    讨论html与javascript在浏览器中的加载顺序问题
    Nov 27 Javascript
    JScript中的条件注释详解
    Apr 24 Javascript
    JavaScript常用基础知识强化学习
    Dec 09 Javascript
    基于JS实现新闻列表无缝向上滚动实例代码
    Jan 22 Javascript
    JavaScript函数内部属性和函数方法实例详解
    Mar 17 Javascript
    vue中post请求以a=a&amp;b=b 的格式写遇到的问题
    Apr 27 Javascript
    微信小程序新手教程之启动页的重要性
    Mar 03 Javascript
    解决axios post 后端无法接收数据的问题
    Oct 29 Javascript
    vue+vant-UI框架实现购物车的复选框全选和反选功能
    Nov 05 Javascript
    原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
    Feb 23 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程序中的常见漏洞进行攻击
    2006/10/09 PHP
    php中instanceof 与 is_a()区别分析
    2015/03/03 PHP
    php实现表单多按钮提交action的处理方法
    2015/10/24 PHP
    firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
    2007/04/12 Javascript
    漂亮的widgets,支持换肤和后期开发新皮肤
    2007/04/23 Javascript
    javascript的trim,ltrim,rtrim自定义函数
    2008/09/21 Javascript
    myFocus slide3D v1.1.0 使用方法与下载
    2011/01/12 Javascript
    JavaScript中“+”的陷阱深刻理解
    2012/12/04 Javascript
    Jquery 模拟用户点击超链接或者按钮的方法
    2013/10/25 Javascript
    jQuery DOM操作实例
    2014/03/05 Javascript
    关闭页面时window.location事件未执行的原因分析及解决方案
    2014/09/01 Javascript
    从JQuery源码分析JavaScript函数的apply方法与call方法
    2014/09/25 Javascript
    jquery实现无限分级横向导航菜单的方法
    2015/03/12 Javascript
    基于JS实现的笛卡尔乘积之商品发布
    2016/05/13 Javascript
    基于BootStrap实现局部刷新分页实例代码
    2016/08/08 Javascript
    jQuery删除节点用法示例(remove方法)
    2016/09/08 Javascript
    关于在mongoose中填充外键的方法详解
    2017/08/14 Javascript
    详解weex默认webpack.config.js改造
    2018/01/08 Javascript
    基于Vue2.X的路由和钩子函数详解
    2018/02/09 Javascript
    如何在postman测试用例中实现断言过程解析
    2020/07/09 Javascript
    Vue-cli打包后如何本地查看的操作
    2020/09/02 Javascript
    Angular+Ionic使用queryParams实现跳转页传值的方法
    2020/09/05 Javascript
    Python实现获取网站PR及百度权重
    2015/01/21 Python
    用Python计算三角函数之atan()方法的使用
    2015/05/15 Python
    python开发之函数定义实例分析
    2015/11/12 Python
    python 爬虫 批量获取代理ip的实例代码
    2018/05/22 Python
    django manage.py扩展自定义命令方法
    2018/05/27 Python
    opencv转换颜色空间更改图片背景
    2019/08/20 Python
    使用jupyter notebook直接打开.md格式的文件
    2020/04/10 Python
    可爱的童装和鞋子:Fabkids
    2019/08/16 全球购物
    杰夫·班克斯男士服装网上商店:Jeff Banks
    2019/10/24 全球购物
    介绍一下Transact-SQL中SPACE函数的用法
    2015/09/01 面试题
    给学校的建议书
    2014/03/12 职场文书
    迎国庆横幅标语
    2014/10/08 职场文书
    销售经理助理岗位职责
    2015/04/13 职场文书
    银行客户经理培训心得体会
    2016/01/09 职场文书