关于firefox浏览器对比其它浏览器验证码刷新不了问题

今天改两个前端页面的bug,一个是登陆失败后验证码不会刷新需要手动点击刷新(除了firefox浏览器外),另外一个是独独firefox点击验证码无法刷新

先说一下登录后验证码不会刷新这个,一开始思路是登陆失败就刷新页面,然后就在判断登录失败时加了句window.location。结果虽然可以刷新页面,但是如果账号密码输入框里面没有设置记住号码则需要再次填写,就换了种思路,直接调用验证码刷新。一开始是在判断登录失败时执行:

var imh=document.getElementById("xxx");
img.src="<{:U(('verifycode')}>?t=<{:time()}>"

发现达到预期目的,但是一试之后在firefox也不行,那就说明这个生成验证码的代码在firefox的处理机制跟其它浏览器不一样。就把time()改成Math.random()跟new Date();发现结果都一样。

源代码是:

onclick='this.src="<{:U('verifycode')}>?t=<{:time()}>"
和
onclick='this.src="<{:U('verifycode')}>?t=Math.random()"

然后就到浏览器看html源码,发现验证码在firefox上面点击是一串不变的地址(其它浏览器也是地址不变),但是就firefox无法更新图片,就想着是不是firefox对验证码的处理机制不同,然后就把代码改成:

onclick='this.src="<{:U('verifycode')}>?t="+Math.random()

结果测试成功了没问题,然后再把判断登录失败后的代码加上:

var imh=document.getElementById("xxx");
img.src="<{:U(('verifycode')}>?t="+Math.random();

总算把问题都解决了,总的来说就是对浏览器机制不了解,firefox是需要地址变换才会更新验证码图片,别的浏览器只要是加载任意地址都会更新图片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值