我一直在多个网站上使用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出现在我的注册面板上? (其他一切都成功了)
答案 0 :(得分:1)
问题是我在加载页面后在弹出窗口中动态添加了我的recaptcha。解决方案是将这个块放入回调中:
var recaptcha = radWindow.querySelector("#recaptcha");
if (recaptcha) {
grecaptcha.render("recaptcha");
}
其中radWindow
是弹出窗口对象,recaptcha
是重新标记标记的ID。