为什么Recaptcha没有出现?

时间:2017-11-05 16:47:55

标签: php html css recaptcha

我一直在多个网站上使用Recaptcha。使用Recaptcha v2的现有安装,我在域列表中添加了一个新主机。随后,我确保使用该库

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

另外,我已将reCaptcha2的必要标记包含在我的注册表单结构模板中

public static function Registration($params) {
    $response = $params["Response"];
    $response->set("template",
            '<label for="username">Felhasználónév</label>'.
            '<input class="form-data" name="Username" type="text" id="username">'.
            '<label for="password">Jelszó</label>'.
            '<input class="form-data" name="Password" type="password" id="password">'.
            '<label for="confirm-password">Jelszó ismétlése</label>'.
            '<input class="form-data" name="ConfirmP" type="password" id="confirm-password">'.
            '<label for="name">Név</label>'.
            '<input class="form-data" name="Name" type="text" id="name">'.
            '<label for="email">Email</label>'.
            '<input class="form-data" name="Email" type="text" id="email">'.
            '<label for="bio">Bio</label>'.
            '<textarea class="form-data" name="Bio" id="bio"></textarea>'.
            '<form><div class="g-recaptcha" id="recaptcha" data-sitekey="<my key>"></div></form>'.
            '<span class="api form" data-form-name="Registration" data-events="click" data-container="#popup-content">Beküldés</span>'
            );
    return $response;
}   

即使在旧版本的实例中使用相同的密钥,但这本身并不足以让我的reCaptcha显示出来。 reCaptcha在活跃之前需要一些时间吗?或者是否有一些依赖项,如jquery?基本上,我应该怎样做才能让我的reCaptcha出现在我的注册面板上? (其他一切都成功了)

1 个答案:

答案 0 :(得分:1)

问题是我在加载页面后在弹出窗口中动态添加了我的recaptcha。解决方案是将这个块放入回调中:

                        var recaptcha = radWindow.querySelector("#recaptcha");
                        if (recaptcha) {
                            grecaptcha.render("recaptcha");
                        }

其中radWindow是弹出窗口对象,recaptcha是重新标记标记的ID。