JS实现PC手机端和嵌入式滑动拼图验证码三种效果


Posted in Javascript onFebruary 15, 2017

PC和手机端网站滑动拼图验证码效果源码,同时包涵了弹出式Demo,使用ajax形式提交二次验证码所需的验证结果值,嵌入式Demo,使用表单形式提交二次验证所需的验证结果值,移动端手动实现弹出式Demo三种效果

JS实现PC手机端和嵌入式滑动拼图验证码三种效果

首先要确认前端使用页面,比如登陆页面

<script src="http://code.jquery.com/jquery-1.12.3.min.js"></script> 
<script src="http://static.geetest.com/static/tools/gt.js"></script>

1.在登陆页面访问引入类库: 如果您的网站使用https,则只需要将引入极验库的地方换成https协议即可,不需要更改其它地方。例如更换成以下代码即可:

<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script> 
<script src="https://static.geetest.com/static/tools/gt.js"></script>

2.初始化前端 下面的代码需要在页面加载后就执行,如果你使用jQuery,可以写在$(function(){});

$.ajax({ 
 // 获取id,challenge,success(是否启用failback) 
 url: "../web/StartCaptchaServlet.php?t=" + (new Date()).getTime(), // 加随机数防止缓存 
 type: "get", 
 dataType: "json", 
 success: function (data) { 
  // 使用initGeetest接口 
  // 参数1:配置参数 
  // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件 
  initGeetest({ 
   gt: data.gt, 
   challenge: data.challenge, 
   product: "popup", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效 
   offline: !data.success // 表示用户后台检测极验服务器是否宕机,与SDK配合,用户一般不需要关注 
  }, handlerPopup); 
 } 
});

上面代码的意思是说,页面加载后,需要到你指定的URL地址上获得验证码信息,至于上面的URL地址“../web/StartCaptchaServlet.PHP”里面写了什么内容,这个我们在服务器端代码部署会详细说明。 但是需要说明的是,上面的代码里有一个回调函数叫“handlerPopup”,这个函数是你需要验证码的真正初始化代码:如下:

// 代码详细说明 
var handlerPopup = function (captchaObj) { 
 // 注册提交按钮事件,比如在登陆页面的登陆按钮 
 $("#popup-submit").click(function () { 
  // 此处省略在登陆界面中,获取登陆数据的一些步骤 
   
  // 先校验是否点击了验证码 
  var validate = captchaObj.getValidate(); 
  if (!validate) { 
   alert('请先完成验证!'); 
   return; 
  } 
  // 提交验证码信息,比如登陆页面,你需要提交登陆信息,用户名和密码等登陆数据 
  $.ajax({ 
   url: "../web/VerifyLoginServlet.php", 
   type: "post", 
   // dataType: "json", 
   data: { 
    // 用户名和密码等其他数据,自己获取,不做演示 
    username:username, 
    password:password, 
    // 验证码数据,这些数据不用自己获取 
    // 这是二次验证所需的三个值 
    // 当然,你也可以直接设置验证码单独校验,省略其他信息 
    geetest_challenge: validate.geetest_challenge, 
    geetest_validate: validate.geetest_validate, 
    geetest_seccode: validate.geetest_seccode 
   }, 
   // 这里是正确返回处理结果的处理函数 
   // 假设你就返回了1,2,3 
   // 当然,正常情况是返回JSON数据 
   success: function (result) { 
    // 1表示验证码验证失败 
    if (result == "1") { 
     alert("验证码验证失败!"); 
    }else if (result == "2") { 
     alert("用户名或密码错误!"); 
    }else if (result == "3") { 
     alert("登陆成功!"); 
     // 登陆成功了,可以在这里做其他处理 
    }else{ 
     alert("登陆错误!"); 
    } 
   } 
  }); 
 }); 
 // 弹出式需要绑定触发验证码弹出按钮 
 // 比如在登陆页面,这个触发按钮就是登陆按钮 
 captchaObj.bindOn("#popup-submit"); 
  
 // 将验证码加到id为captcha的元素里 
 // 验证码将会在下面指定的元素中显示出来 
 captchaObj.appendTo("#popup-captcha"); 
 // 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html 
};

以上所述是小编给大家介绍的JS实现PC手机端和嵌入式滑动拼图验证码三种效果.希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Json字符串转换为JS对象的高效方法实例
May 01 Javascript
如何判断元素是否为HTMLElement元素
Dec 06 Javascript
JavaScript静态类型检查工具FLOW简介
Jan 06 Javascript
jQuery中DOM树操作之复制元素的方法
Jan 23 Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 Javascript
模仿password输入框的实现代码
Jun 07 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
Dec 03 Javascript
js cookie实现记住密码功能
Jan 17 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
javascript设计模式之中介者模式学习笔记
Feb 15 #Javascript
javascript中apply/call和bind的使用
Feb 15 #Javascript
JS实现图片放大缩小的方法
Feb 15 #Javascript
JavaScript中的编码和解码函数
Feb 15 #Javascript
js date 格式化
Feb 15 #Javascript
JS实现最简单的冒泡排序算法
Feb 15 #Javascript
javascript设计模式之单体模式学习笔记
Feb 15 #Javascript
You might like
smarty中js的调用方法示例
2014/10/27 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
详解package.json版本号规则
2019/08/01 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
使用Python &amp; Flask 实现RESTful Web API的实例
2017/09/19 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
英国电子专家:maplin
2019/09/04 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
本科毕业生的求职信范文
2013/11/20 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
八一演出活动方案
2014/02/03 职场文书
运动会解说词200字
2014/02/06 职场文书
自荐信的基本格式
2014/02/22 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
maven依赖的version声明控制方式
2022/01/18 Java/Android