【问题标题】:Render Google Recaptcha Without Callback无回调渲染 Google Recaptcha
【发布时间】:2018-04-13 15:55:45
【问题描述】:

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

HTML 头部:

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

身体:

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

document.ready中的JS:

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
  • @TheIncorrigible1 我认为在头部加载脚本会定义它?
  • 我没有在你链接的 api 中看到它的定义。

标签: javascript recaptcha


【解决方案1】:

您可以使用间隔来检查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 参数要容易得多。

【讨论】:

  • 啊哈window。酷
  • 你太棒了,救了我的命 :)
猜你喜欢
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多