0

我的验证码重新加载操作有问题。它适用于 Chrome,但不适用于 Firefox 或 IE。有一个验证码和一个按钮,我想刷新验证码而不重新加载整个页面。如果我能得到一些帮助,我会很高兴。 使用 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>
4

4 回答 4

1

我怀疑问题可能出在缓存上。您可以通过在 new 中添加时间戳来解决此问题img src,如下所示:

function reloadCaptcha() {
    var img = document.getElementById('captcha'),
        timestamp = new Date().getTime();
    img.src = 'resources/templates/captcha/Captcha.php?' + timestamp;
 }
于 2013-08-08T16:18:54.017 回答
0

你的语法不好。

选项1:

<a href="javascript:reloadCaptcha();">

选项 2:

<a href="#" onclick='reloadCaptcha();'>

选项 3:使用 EventHandler API。

于 2013-08-08T16:13:33.193 回答
0

除了避免缓存,您还需要在 onclick 中返回 false

<a href="#" 
onclick='reloadCaptcha(); return false'><img 
src="../backend/resources/media/captcha_refresh.png"></a>
于 2013-08-08T16:14:29.267 回答
0

我在 Firefox 和 Internet Explorer 上遇到了同样的问题。我使用了事件处理程序,我解决了我的问题。利用

evt.preventDefault(); 
return false;

在您的 javascript 函数中。

于 2015-05-27T16:56:06.083 回答