如何阻止Google reCAPTCHA显示提醒?

如何阻止Google reCAPTCHA显示提醒?

问题描述:

我在网站上有一些表单和Google无形的reCAPTCHA。有时出现问题并显示警告:“无法联系reCAPTCHA,请检查您的连接并重试。”我试图通过覆盖警报功能隐藏这些消息:如何阻止Google reCAPTCHA显示提醒?

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

但是,它不起作用。警报仍然显示。 这是我用来调用reCAPTCHA的代码。我用真正的网站键代替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> 

如何才能停止警报出现?

+0

这已经被回答:https://*.com/questions/48003527/cannot-contact-recaptcha-check-your-connection-and-try-again –

+1

的以前的评论中的链接不是这个问题的答案。这涉及阻止错误发生。这个问题是关于阻止错误显示为Alert()* yuck!*。 – jwinn

根据document,您可以在调用render()函数时传递错误回调。错误回调将在reCAPTCHA遇到错误(通常是网络连接)时执行,并且在连接恢复之前无法继续。所以,你的代码看起来像这样

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