JS局部刷新验证码1
js控制iframe的刷新(页面局部刷新)
js控制iframe的刷新(页⾯局部刷新)今天遇到个问题,后台会员审核之后,页⾯内的会员审核状态要及时改变,但⼜不能指望⽤户⼿动刷新(⽤户体验很不好)如果审核页⾯和显⽰审核状态时同在⼀个html页⾯的话,那么直接⽤js改变div内部的⽂本就可以了,像下⾯这样:$("#btn1").click(function(){$("#test1").text("Hello world!");});$("#btn2").click(function(){$("#test2").html("<b>Hello world!</b>");});$("#btn3").click(function(){$("#test3").val("Dolly Duck");});但是,后台页⾯的布局是这样的:这画的应该不难看出来吧,不过我还是要说明⼀下;⼀个html中包含⼀个iframe1,点击这个iframe1中的某个字段,会跳出⼀个模态框(⽤于审核的div2),审核结束后提交信息,点击button ok,此时数据提交到接⼝并进⾏了⼀系列操作(此处省略具体操作),然后div2窗⼝关闭,这个时候iframe1中的某些字段应该做出改变,⽐如,之前审核状态是“未审核”,在div2审核操作了之后,此时的状态应该变为“已审核”,⽤户希望的是,在点击了button按钮之后,状态⽴即刷新,那么我们应该在提交数据到接⼝,成功之后做出点什么来改变这个状态,但是上⾯说了,直接⽤js获取iframe1中的标签改变其值是⾏不通的,所以我们可以这么做:function check_pass(uid) {$.ajax({type: "GET",url: siteurl,dataType: "json",data:{"c":"api","m":"checkpass","uid":uid},success: function(text) {var _body = window.parent;var _iframe1=_body.document.getElementById('rightMain');_iframe1.contentWindow.location.reload(true);}});}这个函数是在button点击的时候执⾏的,button是存在于div2中的,发起ajax请求向接⼝提交数据之后,我们来看请求成功之后的代码:var _body = window.parent;--------------------获取这个div2的⽗级窗⼝,那么⾃然是这个body了;var _iframe1 = _body.document,getElementById('rightMain');-------------------根据id获取iframe1这个对象;_iframe1.contentWindow.location.reload(true);-----------------------看到reload就该知道是刷新了这个iframe1了。
jsp页面验证码
AJAX+jsp无刷新验证码实例(完整代码)1.login.jsp<%@ pagelanguage="java"contentType="text/html;charset=gb2312"import = "java.util.*"import = "java.sql.*"import = "java.text.*"import = "java.io.*"%><%@ include file="../conn.jsp"%><%request.setCharacterEncoding("gb2312");%><%String username=request.getParameter("name");String pass=request.getParameter("pws");String num=request.getParameter("num");String random=(String)session.getAttribute("random");if(num!=null&&random!=null){if(num.equals(random)){Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery("select * from admin where admin='"+username+"' and pass='"+pass+"'");if(rs.next()){String id=rs.getString("id");session.setAttribute("id",id);response.sendRedirect("admin.jsp");}rs.close();stmt.close();conn.close();}}%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>两岸咖啡</title><link href="../include/style.css" rel="stylesheet" type="text/css" /><script src="net.js"></script><script type="text/javascript">var times=0;function subform(){var gtext=this.req.responseText;var info=document.getElementById("info");if(gtext.indexOf("validate_successful")!=-1){//info.innerHTML="<font color=green>验证码通过</font>";document.forms["form"].submit();//当得到的值表示合法,则验证码通过。
页面刷新验证码的例子
页面刷新验证码的例子在现今互联网时代,验证码已经成为了网络安全的重要组成部分。
当用户在注册、登录等操作时,需要输入验证码,以保证操作的可信性。
而为了防止黑客破解密码,网站也会采用验证码的方式防范攻击。
在本文中,我们将通过一个简单的页面刷新验证码的例子,为大家详细讲解验证码的实现过程。
步骤一:第一步需要我们在HTML中定义一个画布,如下所示:<canvas id="captcha" width="120" height="40"></canvas>这里的id属性指定了画布的id,并设置了画布的宽和高。
步骤二:在JavaScript中定义生成验证码的函数。
在这个例子中,我们将以数字和字母形式随机生成验证码:function draw() {var ctx =document.getElementById("captcha").getContext('2d');ctx.clearRect(0, 0, 120, 40);ctx.font = "30px Arial";var code = "";var codeLength = 4;for (var i = 0; i < codeLength; i++) {var char = Math.floor(Math.random() * 36).toString(36); code += char;ctx.fillStyle ='#'+Math.floor(Math.random()*0xffffff).toString(16);ctx.fillText(char, 20 + i * 20, 30);}sessionStorage.setItem("captcha", code);}这个函数首先获取了画布的上下文,然后清除了之前的画布内容。
Jsp-图片验证码及刷新
1.图片验证码的实现主要的技术点是如何生成一个图片。
生成图片可以使用java.awt包下的类来实现。
我们先写一个简单的生成图片的程序HelloImage.java。
以下是代码部分。
(是我在做留言板项目时的部分代码)"HelloImage .java"view plaincopy to clipboardprint?package liuyanban;import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/*** 生成图片*/public class HelloImage {public static void main(String[] args){BufferedImage image = new BufferedImage(80, 50,BufferedImage.TYPE_INT_RGB);//建立BufferedImage对象。
指定图片的长度宽度和色彩。
Graphics g = image.getGraphics();//取得Graphics对象,用来绘制图片。
g.setColor(new Color(255,255,255));//绘制图片背景和文字。
g.fillRect(0, 0, 80, 25);g.setColor(new Color(0,0,0));g.drawString("HelloImage",6,16);g.dispose();//释放Graphics对象所占用的资源。
try{ImageIO.write(image, "jpeg", new File("C:\\helloImage.jpeg"));//通过ImageIO对象的write静态方法将图片输出。
JS局部刷新图形验证码
JS局部刷新图形验证码JS局部刷新图形验证码开发过程当中,网络安全采取的方法之一,采用验证码功能。
一般在注册、登录的程序当中见得比较多。
其自己在实现这一功能时,静态页面有一段调用图形验证码的PHP文件,,验证码是随机生成的,一般将生成的验证码存入到SESSION当中,以便入其它相关验证操作,由于反应到客户端的图形验证码带有一些杂点,显示时难免会有一点视觉上的干拢,看不清完整的验证码,这时得提供一个刷新验证码的功能,以重新生成验证码。
考虑不通过刷新整个页面来达到这个效果,采用AJAX重新生成验证码时,发现SESSION值改变了,客户端修改图片的src属性,给它重新赋值却无任何变化,请求响应后,js代码:1.var img_obj = document.getElementById('imgcode');2.img_obj.src = 'imgcode.php';3.return;显然显示在客户端上的图形验证码和服务器上的没有得到统一更新。
那么在验证操作时,将不可能得到正确地验证。
原因是由于浏览器的缓存问题,如果两次都是同样的值(src=’imgcode.php’),浏览器一般都不会刷新,所以需要给图片连接动一点手脚。
将img_obj.src =’imgcode.php’; 改成1.img_obj.src = 'imgcode.php?timeamp=' + new Date().getTime();2,也可以直接写成这样:加上一个时间值,或是在后面加上一串随机数字,只要保证总是重新刷新即可,再次运行,成功达到局部刷新功能!其中的AJAX代码,php生成图形验证码的程序代码,网上一搜,有很多,这里不拿出来献丑了。
JS验证码功能的三种实现方式
JS验证码功能的三种实现⽅式摘要:我们在做⼀些后台系统的登录验证的时候。
难免会⽤到验证码功能,来辅助进⾏验证,提⾼安全性,在我们⽇常⽣活中,验证⽅式⽆处不在,最多的是短信验证码的⽅式,通过点击发送验证码,然后⼿机接收短信,填写验证码才能登陆成功,但是也有⼀些其他验证码功能也在使⽤,所以,我就想着来集中记录⼀下,希望对⼤家有所帮助...⼀.数字短信验证码思路:a.两个⽂本框+⼀个获取验证码按钮,⽂本框⽤来输⼊⼿机号和获取到的验证码,按钮负责点击和记录倒计时;b.js书写定时器setTimeout,进⾏60秒验证码失效时间记录;c.后台提供短信获取验证的接⼝,我们把⼿机号作为参数上传,后台获取到后给该⼿机号下发验证码;效果图展⽰:例1.0:点击按钮发送验证码效果图例2.0:短信接收截图代码展⽰:html<input type="text" name="phone" id="phone" value="" placeholder="请输⼊⼿机号" maxlength="11" /><input type="" name="verCode" id="verCode" value="" placeholder="请输⼊验证码" maxlength="6"/><input type="button" name="" id="verCodeBtn" value="获取验证码" onclick="settime(this);"/>css<--博主偷点⼩懒,省略,看不惯就关注我啊-->倒计时js//验证码var counts = 60;function settime(val) {if(counts == 0) {val.removeAttribute("disabled");val.value = "获取验证码";counts = 60;return false;} else {val.setAttribute("disabled", true);val.value = "重新发送(" + counts + ")";counts--;}setTimeout(function() {settime(val);}, 1000);}Ajax接⼝代码js$(function(){//获取验证码$("#verCodeBtn").click(function() {var userinfo = {"UserPhoneNum": '86//' + $("input[name='phone']").val()}$.ajax({url: "https:///user/sendcode/",data: userinfo,type: "get",success: function(data) {if(JSON.parse(data).state === 404 || JSON.parse(data).state === 202 || erPhoneNum === '86//') { alert("验证码发送失败")} else {alert("验证码发送成功,请耐⼼等待")}error: function() {alert("发送失败");}});});})⼆.图形验证码概要:⼀般的图形验证码就像上⽅的短信验证码⼀样,就是后台⽣成的验证码图⽚返回给前端的,那样的话就⽐较简单,因为复杂的都让后台解决了,我在这⾥主要说的是另⼀种,就是不调⽤后台接⼝,通过canvas画布来解决图形验证码。
JavaScript实现随机生成验证码及校验
JavaScript实现随机⽣成验证码及校验本⽂实例为⼤家分享了JavaScript实现随机⽣成验证码及校验的具体代码,供⼤家参考,具体内容如下输⼊验证码(区分⼤⼩写)点击确认,进⾏校验。
出错就弹框提⽰点击看不清重新随机⽣成验证码当验证码输⼊错误时进⾏提⽰<body><div class="v_code"><div class="code_show"><span class="code" id="checkCode"></span><a href="#" id="linkbt">看不清,换⼀张</a></div><div class="input_code"><label for="inputCode">验证码:</label><input type="text" id="inputCode"><span id="text_show"></span></div><input type="button" id="Button1" value="确认"></div><script>// 1.⽣成验证码// 6位数 0-9 a-f 随机⽣成6位内容必须是0-9 a-f 字符串// 数组下标 0、1、2…… 从数组当中随机下标 0-15位// 2.进⾏验证点击确认时,进⾏对⽐window.onload = function() {const randomWord = () => {let code = '';for (var i = 0; i < 6; i++) {var type = getRandom(1,3);switch(type) {case 1:code += String.fromCharCode(getRandom(48,57)) // 数字break;case 2:code += String.fromCharCode(getRandom(65,90)); //⼤写字母break;case 3:code += String.fromCharCode(getRandom(97,122)); //⼩写字母break;}}return code;}function getRandom (min, max) {return Math.round(Math.random()*(max-min)+min)}// 调⽤取数函数const rand = randomWord();//console.log(rand);var checkCode = document.getElementById('checkCode');checkCode.innerText = rand;// 点击切换随机数var linkbt = document.getElementById('linkbt');linkbt.addEventListener('click', function() {checkCode.innerText = randomWord();})// 提交进⾏对⽐document.getElementById('Button1').onclick = function() {var inputCode = document.querySelector('#inputCode');if (inputCode.value != checkCode.innerText) {alert('您输⼊的验证码不正确');inputCode.value = '';return false;} else {alert('输⼊正确');}}}</script></body>以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
前端开发实训案例网页验证码的生成与验证
前端开发实训案例网页验证码的生成与验证前端开发实训案例网页验证码的生成与验证为了保证网页的安全性和防止机器人恶意攻击,很多网站在用户进行注册、登录或者提交表单等操作时会要求用户输入验证码。
验证码是一种基于图像识别的技术,通过生成和验证验证码,可以有效防止机器人的自动化行为,确保用户身份的真实性。
本文将介绍前端开发中实现网页验证码的生成与验证的案例,并提供相应的代码实例。
1. 网页验证码的生成在前端开发中,验证码的生成是通过服务器端应用和前端代码联动来实现的。
以下是一种常见的验证码生成方法:首先,我们需要在服务器端生成验证码图片。
可以使用第三方库、自定义脚本或开源工具来实现这一步骤。
生成验证码图片的关键是要确保图片上的字符是随机的、干扰元素适当,并且字体、大小、颜色等可配置。
接下来,在前端页面中使用<img>标签将验证码图片展示给用户。
同时,在用户填写验证码的输入框旁边提供一个刷新按钮,点击按钮可以重新加载生成新的验证码图片。
2. 网页验证码的验证用户输入验证码后,前端需要将验证码的值发送给服务器端进行验证。
下面是一个网络验证码验证的示例过程:首先,前端需要获取用户输入的验证码值,可以使用JavaScript的相关API来获取。
然后,前端通过AJAX等方式将验证码的值发送给服务器端。
服务器端会将用户输入的验证码值与之前生成的验证码值进行比对。
如果验证码验证成功,服务器端会返回一个验证通过的信息(如JSON格式的数据)给前端;否则,返回一个验证失败的信息。
前端根据服务器端返回的响应,可以展示相应的提示信息给用户,例如验证码正确、验证码错误等提示。
3. 安全性考虑为了保证验证码的安全性,防止机器人攻击,有以下几点需要注意:首先,生成的验证码要足够随机,不能出现重复的情况,且需要有一定复杂度。
可以使用混合字母、数字和特殊字符的组合,增加验证码的难度。
其次,验证码的图片要有适当的干扰元素,使机器无法简单识别。
js 滑块验证码原理
js 滑块验证码原理JS滑块验证码原理1. 引言滑块验证码是一种常用的验证手段,用于防止机器人或恶意行为的访问。
通过调用JavaScript实现,滑块验证码可以在网站中用于用户登录、注册等环节。
本文将从浅入深,介绍JS滑块验证码的原理与实现。
2. 滑块验证码的作用滑块验证码通过在用户界面上展示一个滑块,要求用户将滑块滑动到合适的位置,从而完成验证过程。
它的作用主要有两点: * 验证用户是人类而非机器人 * 防止恶意行为的访问3. 滑块验证码的原理滑块验证码的原理可以分为以下几个步骤: 1. 生成背景图片和滑块图片 2. 将滑块图片与背景图片叠加 3. 将叠加后的图片输出给前端页面 4. 前端页面展示滑块图片和背景图片 5. 用户拖动滑块图片完成验证4. 生成背景图片和滑块图片在滑块验证码的实现中,背景图片和滑块图片的生成是重要的一步。
其中,背景图片可以是一张包含了随机干扰线条、噪点或文字的图片;滑块图片是一个被用户拖动的有颜色区块。
5. 叠加滑块图片与背景图片在服务器端将滑块图片与背景图片叠加,可以通过图像处理库实现。
将滑块图片放置在背景图片上,并生成一张新的图片作为验证码图片的展示。
6. 输出验证码图片给前端页面将叠加后的验证码图片输出给前端页面,可以通过服务器返回的方式实现。
这张图片将用于用户进行滑块验证的界面展示。
7. 前端页面展示滑块图片和背景图片在前端页面中,通过一个img标签展示生成的验证码图片,以便用户在验证的过程中进行操作。
8. 用户拖动滑块图片完成验证用户需要将滑块图片拖动到合适的位置,从而完成验证。
具体来说,用户可以通过鼠标或触摸屏幕操作,将滑块图片拖动到背景图片上展示的相应位置。
9. 验证结果判断与处理服务器端接收到用户传递的拖动距离后,进行验证结果的判断与处理。
如果拖动距离与预期相符,则验证成功;否则,验证失败。
10. 总结滑块验证码通过前后端的协作,实现了简单而有效的验证手段。
js中的refresh()方法
文章主题:探索JavaScript中的refresh()方法在JavaScript编程中,我们经常会遇到需要刷新页面或元素的情况。
而refresh()方法就是其中一种常见的实现方式。
本文将从简到繁地探讨refresh()方法,以帮助读者更深入地理解该方法的使用及其背后的原理。
1. 什么是refresh()方法?refresh()方法是JavaScript中用来刷新页面或元素的一种常用方法。
它可以通过重新加载页面或者更新指定元素的内容来实现页面刷新的效果。
在日常开发中,refresh()方法被广泛运用于实现页面自动刷新、定时刷新或者在特定事件触发后的刷新操作中。
2. refresh()方法的基本用法在使用refresh()方法时,我们首先需要获取到需要刷新的页面或元素,然后调用相应的刷新方法来实现效果。
我们可以使用location.reload()方法来重新加载整个页面,或者通过设置元素的innerHTML属性来更新指定元素的内容。
3. refresh()方法的高级用法除了基本的页面刷新操作外,refresh()方法还可以结合其他技术实现更复杂的功能。
我们可以利用Ajax技术来实现局部刷新,或者使用WebSocket来实现实时数据更新。
这些高级用法可以大大提升用户体验和页面性能。
4. 如何避免refresh()方法带来的问题在使用refresh()方法时,我们需要注意一些潜在的问题。
频繁的页面刷新会增加服务器负担,而且可能会影响用户体验。
在使用refresh()方法时,我们需要合理设置刷新频率,并且优化页面加载速度,以减少不必要的刷新操作。
5. 个人观点及总结在我看来,refresh()方法是一个非常有用的工具,可以帮助我们实现页面的自动刷新和数据的实时更新。
然而,我们在使用refresh()方法时需要注意平衡好用户体验和服务器负担,避免出现不必要的问题。
refresh()方法是一个强大的工具,只有在正确的场景下合理使用,才能发挥其最大的价值。
js生成验证码并且判断
js⽣成验证码并且判断 <style type="text/css">.code{font-family: Arial;font-style: italic;color: Red;border: 0;padding: 2px 3px;letter-spacing: 3px;font-weight: bolder;}.unchanged{border: 0;}</style><script type="text/javascript" src="img/jquery-1.5.1.min.js"></script><script language="javascript" type="text/javascript">var code; //在全局定义验证码var code2; //在全局定义验证码function createCode() {code = "";var checkCode = document.getElementById("checkCode");function RndNum(n) {var rnd = "";for (var i = 0; i < n; i++)rnd += Math.floor(Math.random() * 10);return rnd;}var num = RndNum(2);var num2 = RndNum(2);code = num + "+" + num2 + "=";code2 = parseInt(num) + parseInt(num2)if (checkCode) {checkCode.className = "code";checkCode.value = code;}}</script><script type="text/javascript">$(document).ready(function () {$("#input1").blur(function () {var inputCode = document.getElementById("input1").value;if (inputCode.length <= 0) {alert("请输⼊验证码!");}else if (inputCode != code2) {alert("验证码输⼊错误!");createCode(); //刷新验证码}else {alert("^-^ OK");}});})</script>-------------------------------------------------------------------------------------------------------------------------------------------------------------------------<form action="#"> <input type="text" id="input1" /><input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px;background: #660099"/><br /></form>。
js实现验证码功能
js实现验证码功能本⽂实例为⼤家分享了js实现验证码功能的具体代码,供⼤家参考,具体内容如下#前⾯是拆解着讲的,不想看可以直接跳过,带注释的完整版代码和效果在后⾯⾸先在页⾯中准备⼀个输⼊框,⼀个显⽰验证码的盒⼦和⼀个提交按钮<body><input type="text"><div></div><button>提交</button></body>然后加⼀些样式input {width: 150px;height: 30px;outline: none;font-size: 24px;vertical-align: middle;}button {outline: none;vertical-align: middle;cursor: pointer;}div {display: inline-block;width: 90px;height: 40px;line-height: 40px;text-align: center;vertical-align: middle;background-color: #ddd;cursor: pointer;}然后⼤概长这样(有点丑,不过⽆所谓,主要内容是js)好,那么开始写js⾸先获取这些元素var input = document.querySelector('input');var btn = document.querySelector('button');var div = document.querySelector('div');然后搞⼀个字符库和⼀个保存验证码的字符串var characters = "QWETYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890";var str;那个字符库就直接滚键盘就⾏了~因为验证码要多次⽤到随机数,所以为了⽅便就先搞⼀个随机数的函数function getRandom(l, r) {return parseInt(l + Math.random() * (r - l + 1));}因为是验证码,所以不能让⽣成的⽂本可以直接被选中复制,所以给加⼀个⽂本不可选中div.addEventListener('selectstart', function (e) {e.preventDefault();})因为验证码不是每次刷新页⾯就⽣成⼀次,看不清是可以换的,要多次⽣成,所以就把⽣成验证码的部分写在⼀个函数⾥function run() {str = '';while (div.hasChildNodes()) {div.removeChild(div.firstChild);}for (var i = 0; i < 4; i++) {var span = document.createElement('span');span.innerHTML = characters[getRandom(0, characters.length - 1)];span.style.display = 'inline-block';span.style.fontSize = getRandom(16, 32) + 'px';span.style.color = 'rgb(' + getRandom(0, 200) + ',' + getRandom(0, 200) + ',' + getRandom(0, 200) + ')';span.style.transform = 'translate(' + getRandom(-5, 5) + 'px, ' + getRandom(-5, 5) + 'px) rotate(' + getRandom(-20, 20) + 'deg)';str += span.innerHTML;div.appendChild(span);}}⼤概说明⼀下这部分,原理⼤概就是创建4(我搞的是4位的验证码)个span,然后分别随机设置⽂本、字体⼤⼩、字体颜⾊、平移旋转啥的,然后把span添加到div⾥成为div的⼦节点,然后不要忘了让str变量储存⼀下验证码的字符每次⽣成之前先将上⼀次⽣成的验证码删掉(即把div⾥的所有⼦节点删除掉),并且把str重置然后页⾯刷新的时候⽣成⼀次(调⽤⼀次),每次点击div的时候重新⽣成⼀次(每次点击调⽤⼀次)run();div.addEventListener('click', run);再给提交按钮添加点击事件:判断验证输⼊的验证码对不对,然后刷新验证码,并且⾃动将输⼊框中的⽂本清除btn.addEventListener('click', function () {if (input.value.toLowerCase() == str.toLowerCase()) {alert('验证成功');} else {alert('验证失败');}run();input.value = '';})判断验证码这⾥我为了不区分⼤⼩写⽤了toLowerCase()函数将两个字符串都转化成⼩写之后再做的⽐较⾄此,功能就都实现的差不多了看效果:带注释的完整版代码如下:<!DOCTYPE html><html lang="ch-ZN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js实现验证码</title><style>input {width: 150px;height: 30px;outline: none;font-size: 24px;vertical-align: middle;}button {outline: none;vertical-align: middle;cursor: pointer;}div {display: inline-block;width: 90px;height: 40px;line-height: 40px;text-align: center;vertical-align: middle;background-color: #ddd;cursor: pointer;}</style></head><body><input type="text"><div></div><button>提交</button><script>// 获取元素var input = document.querySelector('input');var btn = document.querySelector('button');var div = document.querySelector('div');// 搞⼀个字符库var characters = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890"; var str; // str⽤来储存验证码的⽂本// ⽣成⼀个在[l,r]范围内的随机整数的函数function getRandom(l, r) {return parseInt(l + Math.random() * (r - l + 1));}// 设置⽂本不可选中div.addEventListener('selectstart', function (e) {e.preventDefault();})// ⽣成验证码的函数function run() {// 先重置strstr = '';// 删除掉div中的所有⼦节点while (div.hasChildNodes()) {div.removeChild(div.firstChild);}// ⽣成由四个字符组成的验证码for (var i = 0; i < 4; i++) {// 创建⼀个span对象var span = document.createElement('span');// 设置⽂本(从字库中随机抽取⼀个字符)span.innerHTML = characters[getRandom(0, characters.length - 1)];// 设置⼀些随机的样式span.style.display = 'inline-block';span.style.fontSize = getRandom(16, 32) + 'px';span.style.color = 'rgb(' + getRandom(0, 200) + ',' + getRandom(0, 200) + ',' + getRandom(0, 200) + ')';span.style.transform = 'translate(' + getRandom(-5, 5) + 'px, ' + getRandom(-5, 5) + 'px) rotate(' + getRandom(-20, 20) + 'deg)'; str += span.innerHTML; // str记录字符div.appendChild(span); // 将span添加到div中}}run(); // 每次打开/刷新页⾯时先调⽤⼀次div.addEventListener('click', run); // 每次点击验证码的时候调⽤⼀次// 提交按钮点击事件btn.addEventListener('click', function () {if (input.value.toLowerCase() == str.toLowerCase()) {alert('验证成功');} else {alert('验证失败');}run();input.value = '';})</script></body></html>以上以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
JavaScript实现页面动态验证码的实现示例
JavaScript实现页⾯动态验证码的实现⽰例引⾔:现在很多在⽤户登陆或注册的时候为了防⽌程序攻击,加⼊了动态验证的技术,⼀般是让⽤户输⼊随即⽣成的验证码来实现。
我⾃⼰写了⼀个没有跟后台交互的,就在前端验证,发出来给⼤家看看。
效果图:实现思路:把数字和字母放到⼀个数组中,通过随机的⽅式取得数组下标,总共取4个组成验证码;把验证码渲染出来(⼀个⼀个的渲染);绘制⼀定数量的⼲扰线,随机颜⾊;输⼊验证码,输⼊4位以后去验证,正确显⽰钩,错误显⽰叉并且刷新验证码。
编写构造函数⽂本构造函数//⽂字的构造函数function Text(o){this.x=0,//x坐标this.y=0,//y坐标this.text='',//内容this.font=null;//字体this.textAlign=null;//对齐⽅式this.init(o);}Text.prototype.init=function(o){for(var key in o){this[key]=o[key];}}Text.prototype.render=function(context){this.ctx=context;innerRender(this);function innerRender(obj){var ctx=obj.ctx;ctx.save()ctx.beginPath();ctx.translate(obj.x,obj.y);if(obj.font){ctx.font=obj.font;}if(obj.textAlign){ctx.textAlign=obj.textAlign;}if(obj.fill){//是否填充obj.fillStyle?(ctx.fillStyle=obj.fillStyle):null;ctx.fillText(obj.text,0,0);}ctx.restore();}return this;}线段构造函数//直线的构造function Line(ctx,o){this.x=0,//x坐标this.y=0,//y坐标this.startX=0,//开始点x位置this.startY=0, //开始点y位置this.endX=0,//结束点x位置this.endY=0;//结束点y位置this.thin=false;//设置变细系数this.ctx=ctx;this.init(o);}Line.prototype.init=function(o){for(var key in o){this[key]=o[key];}}Line.prototype.render=function(){innerRender(this);function innerRender(obj){var ctx=obj.ctx;ctx.save()ctx.beginPath();ctx.translate(obj.x,obj.y);if(obj.thin){ctx.translate(0.5,0.5);}if(obj.lineWidth){//设定线宽ctx.lineWidth=obj.lineWidth;if(obj.strokeStyle){ctx.strokeStyle=obj.strokeStyle;}//划线ctx.moveTo(obj.startX, obj.startY);ctx.lineTo(obj.endX, obj.endY);ctx.stroke();ctx.restore();}return this;}按长度获取验证码//根据指定长度⽣成随机字母数字Verifiable.prototype.randomWord=function(range){var str = "",pos,arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; for(var i=0; i<range; i++){pos = Math.round(Math.random() * (arr.length-1));str += arr[pos];}return str;}绘制⽂字//绘制⽂字Verifiable.prototype.drawText=function(){var that=this;var count = 4;//⽂字个数var textW = 40;//⽂字所占宽var code=this.code = this.randomWord(count);var codeArr = code.split("");var text,x ;codeArr.forEach(function(c,i){x = that.w/count*i+textW/2;//绘制⽂字text = new Text({x:x,y:textW-10,text:c,font:'30px ans-serif',textAlign:'center',fill:true,fillStyle:'#412D6A'});that.renderArr.push(text);})}此时效果:绘制⼲扰线//绘制⼲扰线Verifiable.prototype.interfering=function(){var count = this.lineCount=20,line,ctx=this.ctx;var startX,startY,endX,endY,color;for(var i=0;i<count;i++){//随机开始坐标,结束坐标、颜⾊startX = _.getRandom(0,140);startY = _.getRandom(0,40);endX = _.getRandom(0,140);endY = _.getRandom(0,40);color = _.getRandomColor();//定义⼀条直线line = new Line(ctx,{x:0,y:0,startX:startX,startY:startY,endX:endX,endY:endY,strokeStyle:color})this.renderArr.push(line);}}此时效果如下:加⼊页⾯布局<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><title>verifiable</title><style>width:140px;height:40px;position:absolute;}#inputDiv{width:220px;position:absolute;margin:0 auto;left:0;top:30px;right:0;bottom:0;}#container{width:220px;height:60px;position:absolute;margin:0 auto;left:0;top:60px;right:0;bottom:0;}.refresh{position:absolute;left:140px;}</style></head><body><div id='inputDiv'>验证码:<input size=10 id='codeInput'><img id='stateImg' style="vertical-align: middle;width:20px"></img></div><div id="container"><div id='box'></div><a href="javascript:void 0" class="refresh" onclick="refresh()">换⼀张</a></div></body><script type="text/javascript" src='verifiable.js'></script><script type="text/javascript">var box = document.getElementById('box');var stateImg = document.getElementById('stateImg');var codeInput = document.getElementById('codeInput');verifiable.init(box,codeInput,stateImg);//换⼀张function refresh(){verifiable.renderArr.length=0;verifiable.draw();}</script></html>加⼊输⼊框事件//输⼊框事件Verifiable.prototype.inputValid=function(input){var val = input.value;if(val.length<4) return ;if(this.code==val){console.log('suc');this.result(0);}else{this.result(1);}}加⼊成功、失败验证//处理结果Verifiable.prototype.result=function(result){var codeInput = this.codeInput;var stateImg = this.stateImg;if(result==0){//成功stateImg.src="./images/suc.jpeg";codeInput.readOnly=true;}else {//失败codeInput.readOnly=false;stateImg.src="./images/fail.jpeg";this.renderArr.length=0;this.draw();}}完成到此这篇关于JavaScript实现页⾯动态验证码的实现⽰例的⽂章就介绍到这了,更多相关JavaScript 动态验证码内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
JS实现简单短信验证码界面
JS实现简单短信验证码界⾯1.要实现短信验证码界⾯,⾸先要有⼀个⽂本框,旁边是按钮,点击时开始倒计时。
2.先创建⽂本框和按钮,按钮设置对应的id,然后在js中通过id获取按钮这个元素,对其执⾏操作。
同时应设置倒计时时间以及计时器变量,并使点击发送按钮后倒计时结束前⽆法继续点击按钮重新发送。
3.倒计时结束后,清除计时器,并使⽂字改变为“重新发送验证码”,恢复对按钮能操作的功能,同时使倒计时的数从5秒重新开始以便点击后重新倒计时。
<head><meta charset="UTF-8"><title>js发送短信验证码</title></head><body><input type="text"/><button id="bt01">发送验证码</button></body><script type="text/javascript">var bt01 = document.getElementById("bt01");bt01.onclick = function() {bt01.disabled = true; //当点击后倒计时时候不能点击此按钮var time = 5; //倒计时5秒var timer = setInterval(fun1, 1000); //设置定时器function fun1() {time--;if(time>=0) {bt01.innerHTML = time + "s后重新发送";}else{bt01.innerHTML = "重新发送验证码";bt01.disabled = false; //倒计时结束能够重新点击发送的按钮clearTimeout(timer); //清除定时器time = 5; //设置循环重新开始条件}}}</script>总结以上所述是⼩编给⼤家介绍的JS实现简单短信验证码界⾯,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
JavaScript实现滑块验证码
JavaScript实现滑块验证码本⽂实例为⼤家分享了JavaScript实现滑块验证码的具体代码,供⼤家参考,具体内容如下效果:⿏标在底部滑块上按下按住不松拖动可以移动滑块,上⾯⼤图⾥⾯带有⼩图背景的滑块也会跟随移动,移动到⼤图背景缺少区域即可完成验证。
以上效果要实现,需要⿏标按下(mousedown事件),⿏标松开(mouseup事件),⿏标移动(mousemove事件)这⼏个事件。
先制作html部分实现静态效果,⼤图⾥⾯可移动的⼩块背景⼤⼩与⼤图⼀致,给⼩图块的背景添加background-position属性来控制⼩图要显⽰的图⽚区域HTML:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;}body{background: #34495e;}.wrap{width: 600px;margin: 100px auto;}.banner{width: 600px;height: 400px;background: url(img/ChMkJ1bZOGOIE_lfABJWl176xQgAAMhjALAOLwAElav369.jpg);background-size: 600px 400px;position: relative;}.blank-box{position: absolute;top: 100px;left: 200px;width: 50px;height: 50px;background: #fff;}.block{position: absolute;top: 100px;left: 0;width: 50px;height: 50px;background: url(img/ChMkJ1bZOGOIE_lfABJWl176xQgAAMhjALAOLwAElav369.jpg);background-size:600px 400px;background-position:-200px -100px;border: 1px solid red;}.move{position: relative;}.move p{height: 50px;line-height: 50px;font-size: 16px;color: #666;background: #eee;text-align: center;}.move-block{position: absolute;left: 0;top: 0;width: 50px;height: 50px;background:#1abc9c;cursor: pointer;}</style></head><body><div class="wrap"><div class="banner"><div class="blank-box"></div><div class="block"></div></div><div class="move"><p>移动滑块>>></p><div class="move-block"></div></div></div></body></html>JS部分:获取需要的dom元素,⿏标在底部滑块上按下时,才能移动,所以在这个滑块上绑定⼀个⿏标按下事件,在这个事件⾥通过event这个对象获取⿏标的坐标点并减去⼩块的偏移量来获取滑块移动的偏差值(⿏标的坐标点减去这个偏差值才是真实移动的距离),移动状态变为可滑动。
JavaScript实现点击切换验证码及校验
JavaScript实现点击切换验证码及校验本⽂实例为⼤家分享了JavaScript实现点击切换验证码及校验的具体代码,供⼤家参考,具体内容如下效果:代码:<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title><style>div {width: 100px;height: 40px;background-color: red;color: #fff;text-align: center;line-height: 40px;font-size: 30px;font-weight: 900;user-select: none;}.show {position: absolute;left: 0;top: 0;right: 0;bottom: 0;margin: auto;width: 200px;height: 100px;background-color: pink;text-align: center;line-height: 100px;font-size: 40px;font-weight: 900;display: none;}</style></head><body><div></div><input type="text" value="请输⼊上图的验证码" /><button>注册</button><div class="show">等待中。
</div><script type="text/javascript">//1000-9999var div = document.getElementsByTagName("div");var inp = document.getElementsByTagName("input")[0];var btn = document.getElementsByTagName("button")[0];div[0].innerHTML = ranFun(1000, 9999);inp.onclick = function () {this.value = ""}div[0].onclick = function () {this.innerHTML = ranFun(1000, 9999)}btn.onclick = function () {if (inp.value == div[0].innerHTML) {div[1].style.display = "block";setTimeout(function () {location.href = "register.html"}, 3000)} else {alert('验证码错误')div[0].innerHTML = ranFun(1000, 9999);inp.value = ""}}function ranFun(a, b) {return Math.floor(Math.random() * (b - a + 1) + a)}</script></body></html>以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
javascript发送短信验证码实现代码
javascript发送短信验证码实现代码本⽂⾸先分析⼿机发送验证码的原理,再对javascript发送短信验证码予以实现,具体思路如下:实现点击“发送验证码”按钮后,按钮依次显⽰为“59秒后重试”、“58秒后重试”…直⾄倒计时⾄0秒时再恢复显⽰为“发送验证码”。
在倒计时期间按钮为禁⽤状态 .第⼀步、获取按钮、绑定事件、设置定时器变量和计时变量第⼆步、添加定时器,每隔1秒钟计时减 1,直⾄当计时⼩于等于 0 时清除定时器,按钮恢复为“发送验证码”,否则显⽰为“X 秒后重试”效果图:实现代码:<!doctype html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><script type="text/javascript">window.onload=function(){var send=document.getElementById('send'),times=60,timer=null;send.onclick=function(){// 计时开始var that = this;this.disabled=true;timer = setInterval(function(){times --;that.value = times + "秒后重试";if(times <= 0){that.disabled =false;that.value = "发送验证码";clearInterval(timer);times = 60;}//console.log(times);},1000);}}</script></head><body><input type="button" id="send" value="发送验证码"></body></html>注意点:设置按钮是否为禁⽤时,send.disabled=true; send.disabled=false;true和false不能加引号!true和false不能加引号!true和false 不能加引号!否则值永远为真。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(C#)验证码刷新,页面无刷新题记:闲来无聊,无事可做,于是乎,想起来原先做过的小项目里面有个验证码刷新的问题,果然,JS好强大呀,一两句话,就把问题解决了,要努力啊!好好学习天天向上!~\(≧▽≦)/~最近好喜欢听的一首歌《一直很安静》,还做了手机铃声。
老弟说我怎么会喜欢听“死人”的歌曲啊?我很正直的告诉他,音乐无国界,喜欢就是喜欢咯。
音乐可以这样,人可以吗?喜欢就是喜欢,没来由的喜欢,就像对神起,就对像XX人。
Demo.aspx --演示页面<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Demo.aspx.cs" Inherits="Demo" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>中文验证码验证码刷新</title><script language="javascript" type="text/javascript">function href(){var randomnum=Math.random();var getimagecode=document.getElementById( "Image1");getimagecode.src= "Image.aspx? "+randomnum;}</script></head><body><form id="form1" runat="server"><div><table><tr><td><script language="javascript" type="text/javascript">document.write("<IMG id=Image1 src=Image.aspx?",Math.random(),">");</script><!--这么写为了避免第一次缓冲,假如从这个页面跳转到另一个页面,再跳转回来,按照原来的思路,这里的验证码是不会变的,而这么写,就可以轻松的解决这个问题咯!--></td><td style="height: 13px; width: 205px;"><input id="CheckCode" style="width: 55px" onfocus="href()" type="text" maxlength="4" /><span><a href="javascript:href()" style="font-size: 12px; color: Green">看不清</a></span></td></tr></table></div></form></body></html>Image.aspx.cs --验证码页面这个经常会用到的哟!using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Drawing;using System.Drawing.Drawing2D; //引用的命名控件public partial class Image : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){CreateCheckCodeImage(GenCode(4));}/**//// <summary>/// '产生随机字符串/// </summary>/// <param name="num">随机出几个字符</param>/// <returns>随机出的字符串</returns>private string GenCode(int num){string str = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府称太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严";char[] chastr = str.ToCharArray();// string[] source ={ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "#", "$", "%", "&", "@" };string code = "";Random rd = new Random();int i;for (i = 0; i < num; i++){//code += source[rd.Next(0, source.Length)];code += str.Substring(rd.Next(0, str.Length), 1);}return code;}/**//// <summary>/// 生成图片(增加背景噪音线、前景噪音点)/// </summary>/// <param name="checkCode">随机出字符串</param>private void CreateCheckCodeImage(string checkCode){if (checkCode.Trim() == "" || checkCode == null)return;Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证System.Drawing.Bitmap image = newSystem.Drawing.Bitmap((int)(checkCode.Length * 21.5), 22);Graphics g = Graphics.FromImage(image);try{//生成随机生成器Random random = new Random();//清空图片背景色g.Clear(Color.White);// 画图片的背景噪音线int i;for (i = 0; i < 25; i++){int x1 = random.Next(image.Width);int x2 = random.Next(image.Width);int y1 = random.Next(image.Height);int y2 = random.Next(image.Height);g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);}Font font = new System.Drawing.Font("Arial", 12,(System.Drawing.FontStyle.Bold));System.Drawing.Drawing2D.LinearGradientBrush brush = newSystem.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, true);g.DrawString(checkCode, font, brush, 2, 2);//画图片的前景噪音点g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream();image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);Response.ClearContent();Response.ContentType = "image/Gif";Response.BinaryWrite(ms.ToArray());}catch{g.Dispose(); image.Dispose(); }}}。