2017-10-20 6 views
6

私はウェブサイトと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://stackoverflow.com/questions/48003527/cannot-contact-recaptcha-check-your-connection-and-try-again –

+1

前のコメントのリンクはこの質問に対する答えではありません。それはエラーの発生を止めることを扱っています。この質問は、エラーがAlert()* yuck!*として表示されるのを止めることについてです。 – jwinn

答えて

0

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 
     } 
    }); 
これは、既に回答されている
関連する問題