Comment recharger ReCaptcha en utilisant JavaScript?
j'ai un formulaire D'inscription avec AJAX de sorte que je veux rafraîchir L'image Recaptcha chaque fois qu'une erreur se produit (i.e. nom d'utilisateur déjà utilisé).
je cherche un code compatible avec ReCaptcha pour le recharger en JavaScript.
9 réponses
je pense que je peux répondre à ma propre question maintenant. C'est
Recaptcha.reload();
en JavaScript s'il y a déjà un Recaptcha chargé sur la fenêtre.
Edit: @SebiH a mis à jour que cette commande est maintenant:
grecaptcha.reset();
si vous utilisez la version 1
Recaptcha.reload();
si vous utilisez la version 2
grecaptcha.reset();
ou vous pouvez simplement simuler un clic sur le bouton Rafraîchir
// If recaptcha object exists, refresh it
if (typeof Recaptcha != "undefined") {
jQuery('#recaptcha_reload').click();
}
Important: la Version 1.0 de l'API reCAPTCHA n'est plus supportée, veuillez passer à la Version 2.0.
vous pouvez utiliser grecaptcha.reset(); pour réinitialiser le captcha.
Source: https://developers.google.com/recaptcha/docs/verify#api-request
grecaptcha.reset(opt_widget_id)
réinitialise le widget reCAPTCHA. Un widget id optionnel peut être passé, sinon la fonction réinitialise le premier widget créé. (de la page Web de Google)
Essayez cette
<script type="text/javascript" src="//www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
function showRecaptcha() {
Recaptcha.create("YOURPUBLICKEY", 'captchadiv', {
theme: 'red',
callback: Recaptcha.focus_response_field
});
}
</script>
<div id="captchadiv"></div>
si vous appelez showRecaptcha le captchadiv sera rempli avec une nouvelle instance de recaptcha.
pour les utilisateurs D'AngularJS:
$window.grecaptcha.reset();
pour la nouvelle version de reCaptcha v2 utiliser:
grecaptcha.reset();
si vous utilisez New recaptcha 2.0 utilisez cette: pour le code derrière:
ScriptManager.RegisterStartupScript(this, this.GetType(), "CaptchaReload", "$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});", true);
pour javascript simple
<script>$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});</script>