如何阻止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>
如何才能停止警报出现?
答
根据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
}
});
这已经被回答:https://*.com/questions/48003527/cannot-contact-recaptcha-check-your-connection-and-try-again –
的以前的评论中的链接不是这个问题的答案。这涉及阻止错误发生。这个问题是关于阻止错误显示为Alert()* yuck!*。 – jwinn