我的Captcha重装动作有问题。它适用于Chrome,但不适用于Firefox或IE。 有一个Captcha和一个按钮,我想刷新Captcha而不重新加载整个页面。如果我能得到一些帮助,我会很高兴。 使用javascript代码:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<link href='resources/styles.css' rel='stylesheet' type='text/css' />
<title>...</title>
<script language="javascript" type="text/javascript">
function reloadCaptcha()
{
img = document.getElementById('captcha');
img.src = 'resources/templates/captcha/Captcha.php';
}
</script>
</head>
验证码和刷新按钮
<img src="resources/templates/captcha/Captcha.php" id='captcha'>
<a href="#" onclick='javascript:reloadCaptcha();'>
<img src="../backend/resources/media/captcha_refresh.png">
</a>
答案 0 :(得分:1)
我怀疑问题可能是缓存。您可以通过向新img src
添加时间戳来解决此问题,如下所示:
function reloadCaptcha() {
var img = document.getElementById('captcha'),
timestamp = new Date().getTime();
img.src = 'resources/templates/captcha/Captcha.php?' + timestamp;
}
答案 1 :(得分:0)
你的语法不好。
选项1:
<a href="javascript:reloadCaptcha();">
选项2:
<a href="#" onclick='reloadCaptcha();'>
选项3:使用EventHandler API。
答案 2 :(得分:0)
除了避免缓存之外,还需要在onclick中返回false
<a href="#"
onclick='reloadCaptcha(); return false'><img
src="../backend/resources/media/captcha_refresh.png"></a>
答案 3 :(得分:0)
我在Firefox和Internet Explorer上遇到了同样的问题。我使用事件处理程序,我解决了我的问题。使用
evt.preventDefault();
return false;
在你的javascript函数中。