ReCaptcha v2客户端事件

QFD*_*Dev 34 javascript recaptcha

难道验证码2版公开任何客户端的事件?我正在寻找具体的方法来确定一旦勾选方框后何时返回了Captcha响应,我就可以显示下面的"继续"按钮.

在此输入图像描述

如果没有这个,用户可以单击复选框,然后在验证码响应返回之前快速单击提交按钮.

我可以将自己的click事件处理程序添加到类中recaptcha-checkbox-checkmark并轮询tick的可见性,我只是想知道是否有更简单的方法来执行此操作?

$(".recaptcha-checkbox-checkmark").click(function() {
    //...Poll for visibility of tick
});
Run Code Online (Sandbox Code Playgroud)

Lin*_*der 33

另一种解决方案是data-callback直接设置g-recaptchadiv,就像这样

<script type="text/javascript">
  var imNotARobot = function() {
    console.info("Button was clicked");
  };
</script>

<div class="g-recaptcha" data-callback="imNotARobot" data-sitekey="key"></div>
Run Code Online (Sandbox Code Playgroud)

  • 此外,如果您在验证时显示"继续"按钮,您可能还希望在验证到期时使用`data-expired-callback`属性将其隐藏,因为重新验证确认在几秒钟不活动后会过期. (4认同)

Aar*_*ron 25

您可以配置reCAPTCHA以使用g-recaptcha标记上的data-callback属性成功验证回调,或者如果使用显式呈现则通过'callback'参数进行回调.

请参阅 https://developers.google.com/recaptcha/docs/display#render_param

使用显式渲染的示例:

var myCallback = function(val) { console.log(val); };
grecaptcha.render(
   document.getElementsById('my-recaptcha-placeholder'), 
   {
     callback: myCallback, 
     sitekey: mySiteKey
   });
Run Code Online (Sandbox Code Playgroud)