【问题标题】:getting invisible recaptcha to trigger on page load在页面加载时触发不可见的recaptcha
【发布时间】:2018-01-07 01:14:15
【问题描述】:

我正在尝试制作一个简单的页面,该页面会进行不可见的 recaptcha 检查,如果成功,则会提醒收到的令牌。尽管进行了几次尝试,但我没有让它发挥作用。我做了一个最小的例子:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
    <script type="text/javascript">
        var recaptchaCallback = function(token) {
            alert(token);
        };
    </script>
    <div class='g-recaptcha' data-sitekey='MY_KEY' data-callback='recaptchaCallback' data-size='invisible'></div>
    <script src="//www.google.com/recaptcha/api.js" async defer></script>
    <script type="text/javascript">
        $(document).ready(function(){
            grecaptcha.execute();
        });
    </script>
</body>
</html> 

javascript 引擎错误提示“未定义 grecaptcha”。如果我用

替换该行
setTimeout(function() {grecaptcha.execute();}, 1000);

然后程序按预期运行,但是非常不稳定。我如何告诉 jQuery 实际等待 google recaptcha 代码完全加载?

【问题讨论】:

    标签: jquery invisible-recaptcha


    【解决方案1】:

    我目前使用

    绕过了这个问题
    var ticker = setInterval(function(){
        try{
            grecaptcha.execute();
            clearInterval(ticker);
        } catch(e) {}
    },100);
    

    但如果有人有更优雅的解决方案,我仍然欢迎听到它。

    【讨论】:

      猜你喜欢
      • 2013-04-14
      • 2021-10-19
      • 1970-01-01
      • 2020-08-28
      • 2013-06-20
      • 1970-01-01
      • 2011-09-21
      • 2013-12-02
      • 1970-01-01
      相关资源
      最近更新 更多