Refresh Captcha Image

  • Hallo zusammen,

    ich habe ein Captcha in ein Formular eingebunden. Manchmal kann man es schlecht erkennen und müsste die Seite neu laden. Um dies userfreundlicher zu machen, möchte ich gerne einen refresh-Button einbinden, der nur das Captcha neu läd und nicht die komplette Seite. Bei der kompletten Seite würden die ausgefüllten Felder wieder entleert werden.

    Hat jemand eine Idee, wie ich dies realisieren kann? Bzw. gibt es einen fertigen Aufruf?


    Vielen Dank :)

  • Hallo Steff,

    das hier funktioniert bei mir:

    <div class="captcha_container">
    <we:captcha height="40" width="200" alt="Zahlencode" bgcolor="#ffffff" case="mix" fontcolor="#000000" fontsize="18" maxlength="5" skip="i,I,l,L,0,o,O,1,g,9" style="strikeout" stylecolor="#cccccc" subset="alphanum" type="png" valign="random" />
    <br/>
    <div onClick="refresh();">neu laden</div>
    </div>

    <script>
    function refresh(){
    var xhr=new XMLHttpRequest();
    xhr.open('GET',window.location.origin+window.location.pathname);
    xhr.addEventListener('loadend',function(){
    var parser=new DOMParser();
    var doc=parser.parseFromString(xhr.responseText, 'text/html');
    document.querySelector('.captcha_container > img').replaceWith(doc.querySelector('.captcha_container > img'));
    });
    xhr.send();
    }
    refresh();
    </script>


    Ich hoffe, das hilft.

    Markus

  • Hi Markus,

    vielen Dank :)

    Habe es ausprobiert, aber bei mir tut sich leider nichts :(

    Weißt du, wo mein Fehler liegen könnte. Habe es exakt mit deinem Code probiert.

    P.S: es scheint einen replace zu machen, aber die src bleibt die Gleiche.

    Edited once, last by steff11 (July 3, 2024 at 3:42 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!