【问题标题】:Invisible reCAPTCHA callback on fail or exit失败或退出时不可见的 reCAPTCHA 回调
【发布时间】:2017-07-11 01:19:25
【问题描述】:

Invisible reCAPTCHA 让您在验证成功后轻松设置回调:

<button class="g-recaptcha" data-sitekey="your_site_key" data-callback='successfulVerification()'>Submit</button>

但是,如果用于进一步验证的模式已关闭(或者 reCAPTCHA 无法验证您是人类 - 实际上不确定是否会发生这种情况,也许它似乎没有任何选项来触发回调只是不断地向你展示新的挑战?)

这很重要的原因是我们有一个加载微调器或某种视觉提示来向用户显示我们正在处理提交。如果 reCAPTCHA 无法自动确定用户确实是人类,则将显示模式 - 现在如果用户成功完成它,那很好 - 但如果他/她退出它,加载微调器仍然可见,因为它没有'不知道 reCAPTCHA 失败/用户退出了它。

一种解决方法是仅在 reCAPTCHA 成功并且请求开始之后显示加载微调器 - 但是这对于用户来说会是一个糟糕的体验,因为在单击按钮和表单“出现”要提交 - 让用户可能想知道表单是否实际提交。

关于如何解决这个问题的任何想法?谢谢!

【问题讨论】:

    标签: javascript recaptcha invisible-recaptcha


    【解决方案1】:

    我还没有找到解决这个问题的方法,但是一个黑客解决方法是在超时后重新启用提交按钮,这样至少如果用户取消重新验证尝试,他们不会被无限期锁定。

    var timeout = setTimeout(function () { enableSubmit(); }, 3000);
    grecaptcha.render(elem, {
        ...
        callback: function (token) {
            clearTimeout(timeout);
            continueWithSubmission();
        }
    });
    grecaptcha.execute();
    

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 1970-01-01
      • 2014-02-08
      • 2010-09-08
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多