【问题标题】:How do I stop Google reCAPTCHA from showing alerts?如何阻止 Google reCAPTCHA 显示警报?
【发布时间】:2017-10-20 11:02:12
【问题描述】:

我在网站上有一些表格和谷歌隐形 reCAPTCHA。有时会出现问题并显示警报:“无法联系 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>

如何阻止提醒显示?

【问题讨论】:

  • 上一条评论中的链接不是这个问题的答案。这涉及阻止错误发生。这个问题是关于阻止错误显示为 Alert() yuck!

标签: javascript html recaptcha invisible-recaptcha


【解决方案1】:

根据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
        }
    });

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2014-05-17
    相关资源
    最近更新 更多