首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reCAPTCHA已在此元素中呈现

问reCAPTCHA已在此元素中呈现
EN

Stack Overflow用户
提问于 2019-01-09 20:45:11
回答 2查看 23.3K关注 0票数 7

我有一个简单的联系人表单与ASP .Net建立使用更新面板。一切正常,但我看到了错误

重新验证码

_

_

en.js:未捕获错误:已在此元素中呈现reCAPTCHA

在控制台窗口中

代码语言:javascript
复制
function pageLoad() {
        $('.g-recaptcha').each(function (index, obj) {
            grecaptcha.render(obj, { 'sitekey': 'XXXX' });
        });
    }

我最初添加了

就好像验证码没有被选中,而你点击了发送按钮,验证码就消失了。添加

到脚本行解决了这个问题,但现在我得到了上面的错误。

如果我尝试删除一些元素,那么会出现其他问题,例如验证码不显示或在回发时不显示?

EN

回答 2

Stack Overflow用户

发布于 2019-08-14 02:29:07

几天前,我在动态登录和创建表单时遇到了同样的问题。原因是我在同一个元素上渲染了两次。

Google ReCaptcha抛出一个异常来通知所述问题。

我的解决方案是使用

作为的包装器

代码语言:javascript
复制
try{
    grecaptcha.render('elementID', {
        'sitekey' : 'key',
        'badge' : 'att',
        'size' : 'att',
        'tabindex' : 0,
        'callback' : function(token) {
            //..
        },
        'expired-callback' : function() {
            //...
        },
        'error-callback' : function() {
            //...
        },
        'isolated' : false
    });
}catch(error){/*possible duplicated instances*/}`
票数 5
EN

Stack Overflow用户

发布于 2021-02-28 20:17:59

对于那些在Firebase中使用React的用户,如果发生此错误,您只需在卸载组件时销毁Recaptcha实例即可。

代码语言:javascript
复制
useEffect(() => {
const verifier = new firebase.auth.RecaptchaVerifier(element.current, {
  size: "invisible",
});
    if (!recaptcha) {
        verifier.verify().then(() => setRecaptcha(verifier));
    }
return () => {
  verifier.clear()
}
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54110489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档