腾讯面试题之页面提交过程

首先给一个地址

http://pay.qq.com/include/login_box.html?url=http://pay.qq.com/

有工具 比如 firefox 、 google chrome 等网页代码查看工具。

要求用一段 js 实现下列功能,
已知 用户名 和 明文密码,实现 提交的过程,如果中间出现校验码,捕获校验码的图片。

时长120分钟。

结果面试失败。

大概的扒了一下页面,登录过程如下:

输入QQ号或者是QQ绑定的邮箱,当输入框失去焦点后,会进行验证以确定是否需要验证码(验证码的形式分两种,一种是生成一个图片,需要用户输入指定的字符,一种是程序返回时自带验证码,不用用户输入;有一种情况是不会触发请求的:清空输入框后,重新输入相同的字符串)

输入密码

如果需要,输入验证码

提交表单(这一过程中会将密码和验证码合并加密)

整个过程中的请求都是用<script>来完成的

验证图片的获取:

在 整个登录过程中,没有发现一全局的状态变量可以用来判断是否生成了验证图片,但是程序中会有这样一个过程:当帐号输入框失去焦点后,如果本次输入的帐号与 上次的不同,则会发送一个验证码请求,图片路径生成以后会使验证码输入框可见,并使密码输入框获取到焦点。所以可以从这里想办法获取到当前有的并且正确的 图片路径。

以下是提交代码,没有写在生成了验证图片时获取并输入验证码的过程(只是猜测不会让你可以通过分析代码获取到的,如果有人分析出来了,那就爽了!!!):

JScript code
function loginIt(u, p) { var ubox = document.getElementById( ' u ' ); var pbox = document.getElementById( ' p ' ); var img = document.getElementById( ' imgVerify ' ); var vf = document.getElementById( " verifyinput " ); var s = "" ; ubox.focus(); ubox.value = u; if (g_uin == u){ up(); } else { addEvent(pbox, ' focus ' , up); ubox.blur(); } function addEvent(o, t, f) { if (o.att) { o.attachEvent( ' on ' + t, f); } else if (o.addEventListener) { o.addEventListener(t, f, false ); } } function up() { if (img.src && vf.style.display == '' ) { s = img.src; alert(s); } pbox.value = p; document.getElementById( ' loginform ' ).submit(); } }
posted on 2011-09-19 04:23  之乎者也2011 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wrmfw/archive/2011/09/19/2180855.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值