JS實(shí)現(xiàn)PC手機(jī)端和嵌入式滑動(dòng)拼圖驗(yàn)證碼三種效果
PC和手機(jī)端網(wǎng)站滑動(dòng)拼圖驗(yàn)證碼效果源碼,同時(shí)包涵了彈出式Demo,使用ajax形式提交二次驗(yàn)證碼所需的驗(yàn)證結(jié)果值,嵌入式Demo,使用表單形式提交二次驗(yàn)證所需的驗(yàn)證結(jié)果值,移動(dòng)端手動(dòng)實(shí)現(xiàn)彈出式Demo三種效果

首先要確認(rèn)前端使用頁(yè)面,比如登陸頁(yè)面
<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.在登陸頁(yè)面訪問(wèn)引入類(lèi)庫(kù): 如果您的網(wǎng)站使用https,則只需要將引入極驗(yàn)庫(kù)的地方換成https協(xié)議即可,不需要更改其它地方。例如更換成以下代碼即可:
<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.初始化前端 下面的代碼需要在頁(yè)面加載后就執(zhí)行,如果你使用jQuery,可以寫(xiě)在$(function(){});
$.ajax({
// 獲取id,challenge,success(是否啟用failback)
url: "../web/StartCaptchaServlet.php?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存
type: "get",
dataType: "json",
success: function (data) {
// 使用initGeetest接口
// 參數(shù)1:配置參數(shù)
// 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它做appendTo之類(lèi)的事件
initGeetest({
gt: data.gt,
challenge: data.challenge,
product: "popup", // 產(chǎn)品形式,包括:float,embed,popup。注意只對(duì)PC版驗(yàn)證碼有效
offline: !data.success // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī),與SDK配合,用戶(hù)一般不需要關(guān)注
}, handlerPopup);
}
});
上面代碼的意思是說(shuō),頁(yè)面加載后,需要到你指定的URL地址上獲得驗(yàn)證碼信息,至于上面的URL地址“../web/StartCaptchaServlet.PHP”里面寫(xiě)了什么內(nèi)容,這個(gè)我們?cè)诜?wù)器端代碼部署會(huì)詳細(xì)說(shuō)明。 但是需要說(shuō)明的是,上面的代碼里有一個(gè)回調(diào)函數(shù)叫“handlerPopup”,這個(gè)函數(shù)是你需要驗(yàn)證碼的真正初始化代碼:如下:
// 代碼詳細(xì)說(shuō)明
var handlerPopup = function (captchaObj) {
// 注冊(cè)提交按鈕事件,比如在登陸頁(yè)面的登陸按鈕
$("#popup-submit").click(function () {
// 此處省略在登陸界面中,獲取登陸數(shù)據(jù)的一些步驟
// 先校驗(yàn)是否點(diǎn)擊了驗(yàn)證碼
var validate = captchaObj.getValidate();
if (!validate) {
alert('請(qǐng)先完成驗(yàn)證!');
return;
}
// 提交驗(yàn)證碼信息,比如登陸頁(yè)面,你需要提交登陸信息,用戶(hù)名和密碼等登陸數(shù)據(jù)
$.ajax({
url: "../web/VerifyLoginServlet.php",
type: "post",
// dataType: "json",
data: {
// 用戶(hù)名和密碼等其他數(shù)據(jù),自己獲取,不做演示
username:username,
password:password,
// 驗(yàn)證碼數(shù)據(jù),這些數(shù)據(jù)不用自己獲取
// 這是二次驗(yàn)證所需的三個(gè)值
// 當(dāng)然,你也可以直接設(shè)置驗(yàn)證碼單獨(dú)校驗(yàn),省略其他信息
geetest_challenge: validate.geetest_challenge,
geetest_validate: validate.geetest_validate,
geetest_seccode: validate.geetest_seccode
},
// 這里是正確返回處理結(jié)果的處理函數(shù)
// 假設(shè)你就返回了1,2,3
// 當(dāng)然,正常情況是返回JSON數(shù)據(jù)
success: function (result) {
// 1表示驗(yàn)證碼驗(yàn)證失敗
if (result == "1") {
alert("驗(yàn)證碼驗(yàn)證失?。?);
}else if (result == "2") {
alert("用戶(hù)名或密碼錯(cuò)誤!");
}else if (result == "3") {
alert("登陸成功!");
// 登陸成功了,可以在這里做其他處理
}else{
alert("登陸錯(cuò)誤!");
}
}
});
});
// 彈出式需要綁定觸發(fā)驗(yàn)證碼彈出按鈕
// 比如在登陸頁(yè)面,這個(gè)觸發(fā)按鈕就是登陸按鈕
captchaObj.bindOn("#popup-submit");
// 將驗(yàn)證碼加到id為captcha的元素里
// 驗(yàn)證碼將會(huì)在下面指定的元素中顯示出來(lái)
captchaObj.appendTo("#popup-captcha");
// 更多接口參考:http://www.geetest.com/install/sections/idx-client-sdk.html
};
以上所述是小編給大家介紹的JS實(shí)現(xiàn)PC手機(jī)端和嵌入式滑動(dòng)拼圖驗(yàn)證碼三種效果.希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript定時(shí)器實(shí)現(xiàn)限時(shí)秒殺功能
這篇文章主要為大家詳細(xì)介紹了JavaScript定時(shí)器實(shí)現(xiàn)限時(shí)秒殺功能,適合用于電商節(jié)日活動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
超輕量級(jí)的js時(shí)間庫(kù)miment使用解析
這篇文章主要介紹了超輕量級(jí)的js時(shí)間庫(kù)miment使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
基于JavaScript實(shí)現(xiàn)的希爾排序算法分析
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)的希爾排序算法,簡(jiǎn)單分析了希爾排序的原理并結(jié)合實(shí)例形式給出了javascript實(shí)現(xiàn)希爾排序的操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-04-04
封裝一個(gè)vue中也可使用的uniapp的全局彈窗組件(任何頁(yè)面都可以彈出)
在寫(xiě)uniapp小程序的時(shí)候,彈窗提醒經(jīng)常會(huì)用到,雖然彈窗的組件很多,但是通常別人封裝好的彈窗組件自定義度不高,很難匹配自己的ui需求,這篇文章主要給大家介紹了封裝一個(gè)vue中也可使用的uniapp的全局彈窗組件的相關(guān)資料,這個(gè)組件在任何頁(yè)面都可以彈出,需要的朋友可以參考下2023-02-02
分享網(wǎng)頁(yè)檢測(cè)搖一搖實(shí)例代碼
這篇文章主要介紹了分享網(wǎng)頁(yè)檢測(cè)搖一搖實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-01-01
javascript設(shè)計(jì)模式 – 策略模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 策略模式,結(jié)合實(shí)例形式分析了javascript策略模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
javascript對(duì)數(shù)組的常用操作代碼 數(shù)組方法總匯
js下數(shù)組也是比較常用的,對(duì)數(shù)組元素的處理也是有非常多的方法,這里整理了下,需要的朋友可以參考下。2011-01-01
bootstrap精簡(jiǎn)教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了bootstrap精簡(jiǎn)教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
一個(gè)檢測(cè)表單數(shù)據(jù)的JavaScript實(shí)例
這篇文章主要介紹了一個(gè)檢測(cè)表單數(shù)據(jù)的JavaScript實(shí)例,很簡(jiǎn)單,很實(shí)用,比較適合初學(xué)者2014-10-10

