我在我的网站上使用了新的隐形recaptcha,在主页上我有两种带有recaptcha验证的表格。
因为我在同一页面中使用了多个recaptcha,所以我不得不使用该方法并将其设置为显式
无论如何,我失去了整整一天的搜索,以了解我需要使用grecaptcha.execute()使其工作,但它甚至没有工作,我可能做错了,但我不知道究竟是什么,这里有一些代码:
<script type="text/javascript" charset="utf-8">
var onloadCallback = function() {
var recaptchas = document.querySelectorAll('div[class=g-recaptcha]');
for( i = 0; i < recaptchas.length; i++) {
grecaptcha.render( recaptchas[i].id, {
'sitekey' : '',
'badge' : 'inline',
'size' : 'invisible'
});
grecaptcha.execute(i);
}
}
</script>
我正在使用它的形式:
<div class="g-recaptcha" id="rc1"></div>
在页面的最后:
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
我真的不知道为什么它现在不工作,我已经将grecaptcha.execute设置为“i”,因为我已经读过它是一个基于0的索引,所以它应该可以工作,但它不会
答案 0 :(得分:0)
对于那些想知道如何做的人,我通过显式加载两者使其工作,如下所示:
<script src="https://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>
<script>
var recaptcha1;
var recaptcha2;
var myCallBack = function() {
//Render recaptcha1 on element with ID "recaptcha1"
recaptcha1 = grecaptcha.render('recaptcha1', {
'sitekey' : 'your-site-key',
'theme' : 'light'
});
//Render recaptcha2 on element with ID "recaptcha2"
recaptcha2 = grecaptcha.render('recaptcha2', {
'sitekey' : 'your-site-key',
'theme' : 'light'
});
};
</script>