渲染 Google 无回调的 Recaptcha

Render Google Recaptcha Without Callback

我想在没有 onload 回调的情况下呈现 recaptcha 元素。我有一个没有 <form> 的页面。在保存到数据库之前,他们使用 jquery 从输入字段中获取值,所以我想在保存之前得到响应。

HTML 头:

<script src='https://www.google.com/recaptcha/api.js'></script>

BODY:

<div id="googleQuoteRecapture"></div>

JS 里面 document.ready:

var widget = document.getElementById('googleQuoteRecapture')
var widgetId1 = grecaptcha.render(widget, {
  'sitekey' : 'site_key',
  'theme' : 'light'
});

Uncaught ReferenceError: grecaptcha is not defined

目的是grecaptcha.getResponse(widgetId1)

这可能吗?

您可以使用间隔来检查 grecaptcha 变量是否存在。

这是一个例子:

var interval = setInterval(function(){
  if(window.grecaptcha){
    var widget = document.getElementById('googleQuoteRecapture')
    var widgetId1 = grecaptcha.render(widget, {
      'sitekey' : 'site_key',
      'theme' : 'light'
    });
    clearInterval(interval);
  }
}, 100);

但是使用 onloadCallback 参数要容易得多。