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


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 相关文章推荐
    FireFox JavaScript全局Event对象
    Jun 14 Javascript
    网页打开自动最大化的js代码
    Aug 22 Javascript
    Javascript的setTimeout()使用闭包特性时需要注意的问题
    Sep 23 Javascript
    javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
    Aug 04 Javascript
    jQuery基于$.ajax设置移动端click超时处理方法
    May 14 Javascript
    JS 清除字符串数组中,重复元素的实现方法
    May 24 Javascript
    jQuery实现字符串全部替换的方法
    Dec 12 Javascript
    Bootstrap CSS组件之导航(nav)
    Dec 17 Javascript
    基于input框覆盖掉数字英文的实例讲解
    Jul 21 Javascript
    Vue 通过公共字段,拼接两个对象数组的实例
    Nov 07 Javascript
    vue@cli3项目模板怎么使用public目录下的静态文件
    Jul 07 Javascript
    JavaScript实现沿五角星形线摆动的小圆实例详解
    Jul 28 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的access操作类
    2008/04/09 PHP
    php htmlspecialchars加强版
    2010/02/16 PHP
    PHP 类相关函数的使用详解
    2013/05/10 PHP
    那些年我们错过的魔术方法(Magic Methods)
    2014/01/14 PHP
    thinkPHP实现将excel导入到数据库中的方法
    2016/04/22 PHP
    PHP实现批量重命名某个文件夹下所有文件的方法
    2017/09/04 PHP
    PHP中的self关键字详解
    2019/06/23 PHP
    laravel框架邮箱认证实现方法详解
    2019/11/22 PHP
    javascript中的prototype属性使用说明(函数功能扩展)
    2010/08/16 Javascript
    基于jQuery UI CSS Framework开发Widget的经验
    2010/08/21 Javascript
    js 对小数加法精度处理示例说明
    2013/12/27 Javascript
    javascript模拟评分控件实现方法
    2015/05/13 Javascript
    js密码强度校验
    2015/11/10 Javascript
    整理Javascript基础入门学习笔记
    2015/11/29 Javascript
    Angular中实现树形结构视图实例代码
    2017/05/05 Javascript
    vue.js的安装方法
    2017/05/12 Javascript
    微信小程序 sha1 实现密码加密实例详解
    2017/07/06 Javascript
    Vue2.0如何发布项目实战
    2017/07/27 Javascript
    Vue批量图片显示时遇到的路径被解析问题
    2019/03/28 Javascript
    VsCode里的Vue模板的实现
    2020/08/12 Javascript
    [02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
    2014/05/21 DOTA
    [01:28:31]《加油DOTA》真人秀 第五期
    2014/09/01 DOTA
    [24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
    2018/06/03 DOTA
    举例详解Python中yield生成器的用法
    2015/08/05 Python
    python绘制双柱形图代码实例
    2017/12/14 Python
    Python实现连接两个无规则列表后删除重复元素并升序排序的方法
    2018/02/05 Python
    Python实现Singleton模式的方式详解
    2019/08/08 Python
    python 服务器运行代码报错ModuleNotFoundError的解决办法
    2020/09/16 Python
    CSS3利用text-shadow属性实现多种效果的文字样式展现方法
    2016/08/25 HTML / CSS
    英国一家专门出售品牌鞋子的网站:Allsole
    2016/08/07 全球购物
    htmlentities() 和 htmlspecialchars()有什么区别
    2015/07/01 面试题
    小学优秀教师事迹材料
    2014/12/16 职场文书
    人事行政主管岗位职责
    2015/04/09 职场文书
    妈妈别哭观后感
    2015/06/08 职场文书
    python 闭包函数详细介绍
    2022/04/19 Python
    java实现面板之间切换功能
    2022/06/10 Java/Android