PHP验证码onClick="this.src=this.src+'?'+Math.random()"
这段代码是用于在点击图片验证码时更新验证码的,其中this.src指的是当前点击的图片的URL,'?'+Math.random()是用于生成一个随机数,确保每次请求的URL都是唯一的,防止浏览器缓存。
解释:
this指向当前点击的DOM元素,这里是图片。
this.src获取当前图片的src属性。
this.src+'?'拼接当前的图片URL。
Math.random()生成一个0到1之间的随机数,不包括0和1。
+''将随机数转换成字符串,因为URL是字符串。
最终生成的是类似?0.5623462346234623这样的字符串,作为URL参数,防止浏览器缓存。
解决方案:
如果你想在点击验证码图片时更新验证码,你可以将这段代码应用在你的图片元素上。
示例代码:
<img src="captcha.php" onclick="this.src=this.src+'?'+Math.random();" alt="captcha" />
这段代码放在你的HTML中,当用户点击图片时,就会触发onclick事件,更新图片的URL,从而刷新验证码。
一开始看到这个代码很困惑表示不知道为什么要在this.src后面加上问号,还要加上一个Math.random来生成随机数字。后来才领悟了原来这张图片的原来属性是src,onclick触发函数即点击一次后可能变成src?0.3之类再点击一次变成src?0.3?0.5以此类推。为什么要这样做是因为每次生成图片前端代码会偷懒把src属性的图片放到缓存里面,如果再点击一次发现还是src属性于是网页就会把之前的图片拿出来,所以无法完成点击一次换一次图片。有了这样一个代码就可以实现每次都是不同的属性值去请求verify.php这个文件啦,就是每次都是不同的验证码图片哦。