2017-10-20 12 views
6

J'ai quelques formulaires sur le site et Google invisible reCAPTCHA. De temps en temps, un problème survient et une alerte s'affiche: "Impossible de contacter reCAPTCHA Vérifiez votre connexion et réessayez.". J'ai essayé de cacher ces messages en remplaçant la fonction d'alerte:Comment empêcher Google reCAPTCHA de diffuser des alertes?

<script> 
    var _alert = window.alert; 
    window.alert = function(text) { 
     if(text.indexOf("reCAPTCHA") === -1){ 
      _alert(text); 
     } 
     return true; 
    }; 
</script> 

Cependant, cela ne fonctionne pas. Les alertes sont toujours affichées. C'est le code que j'utilise pour appeler reCAPTCHA. J'utilise véritable clé du site au lieu de MY_SITE_KEY:

<script> 
    var widgetNewsletter; 
    var widgetRegistration; 
    var captchaCallback = function() { 
     widgetNewsletter = grecaptcha.render('subscriptionSubmit', { 
      'sitekey' : 'MY_SITE_KEY', 
      'callback' : function() { 
       document.getElementById("newsletter-validate-detail").submit(); 
      } 
     }); 
     if(document.getElementById("registerFormSubmit") !== null) { 
      widgetRegistration = grecaptcha.render('registerFormSubmit', { 
       'sitekey' : 'MY_SITE_KEY', 
       'callback' : function() { 
        document.getElementById("form-validate").submit(); 
       } 
      }); 
     } 
    }; 
</script> 
<script src='https://www.google.com/recaptcha/api.js?onload=captchaCallback&render=explicit' async="false" defer></script> 

Comment puis-je arrêter des alertes d'apparaître?

+0

Cela a été déjà répondu: https://stackoverflow.com/questions/48003527/cannot-contact-recaptcha-check-your-connection-and-try-again –

+1

Le lien dans le commentaire précédent n'est pas la réponse à cette question. Cela concerne l'arrêt de l'erreur. Cette question est sur l'arrêt des erreurs d'apparaître comme une alerte() * beurk! *. – jwinn

Répondre

0

Selon le document, vous pouvez passer un rappel d'erreur lorsque vous appelez la fonction render(). Le rappel d'erreur sera exécuté lorsque reCAPTCHA rencontre une erreur (généralement une connectivité réseau) et ne peut pas continuer tant que la connectivité n'est pas restaurée. Donc, votre code ressemblera à ceci

widgetNewsletter = grecaptcha.render('subscriptionSubmit', { 
     'sitekey' : 'MY_SITE_KEY', 
     'callback' : function() { 
      document.getElementById("newsletter-validate-detail").submit(); 
     }, 
     'error-callback': function(){ 
      //show error message 
     } 
    });