首页 > 解决方案 > 未捕获(承诺中)错误:reCAPTCHA 占位符元素必须是元素或 id

问题描述

我在这里发现了类似的问题,但我检查了所有建议,但找不到问题。在页面https://www.basement-supercomputing.com/create-an-account/我有 JavaScript 错误

未捕获(承诺中)错误:reCAPTCHA 占位符元素必须是元素或 id

据我所知,这表明 reCaptcha 没有找到将自己添加到页面上的元素。但是,如果我检查页面源,我可以看到 HTML 标记: https ://monosnap.com/file/PeYWAw7wfSENan2At5VaGQ1ghErqhb

<div class="recaptcha controls">
    <div id="hika-recaptcha" class="hika-recaptcha"></div>
    <script type="text/javascript">
        var onloadCallbackHKRecaptcha = function() {
            window.hkCaptchaWidget = grecaptcha.render('hika-recaptcha', {'sitekey':'6LeexMISAAAAAIVTKhGZyvOmfc4s7Fqh-xo2a6t8', 'theme':'light'});

        };
        var scriptTag = document.createElement('script');
        scriptTag.src = "https://www.google.com/recaptcha/api.js?onload=onloadCallbackHKRecaptcha&render=explicit&hl=en-GB";
        scriptTag.defer = true;
        document.body.appendChild(scriptTag);
    </script>
</div>

我还读到如果有多个具有相同 id 的标签(不是这种情况),或者如果在页面上多次加载 recaptcha(也不是这种情况),可能会发生这种错误。如果在页面上添加标签之前运行 javascript,但标签已经存在,甚至在页面上 recaptcha 的 javascript 之前运行,也可能发生这种情况。我还在 localhost 上检查了相同的 ReCaptcha 代码,它工作得很好: https ://monosnap.com/file/2g0AgAWducwtjchIoC3Sf3uFxRuE3B 最后,请注意,在这两种情况下,网站都是使用 Joomla CMS 制作的。

我看不出它为什么不起作用的任何原因,所以如果有人有一个想法,那就太好了!提前致谢

标签: javascripthtmljoomlarecaptcha

解决方案


我自己也遇到过这个问题。查看堆栈跟踪,您似乎正在使用 moo 工具(我也是)。看来,如果您删除它或更新 moo 工具,它应该可以解决 recaptcha 错误。感谢另一个类似的帖子:Recaptcha 2.0 error: reCAPTCHA placeholder element must be an element or id


推荐阅读