javascript - 未捕获(承诺中)错误: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 制作的。
我看不出它为什么不起作用的任何原因,所以如果有人有一个想法,那就太好了!提前致谢
解决方案
我自己也遇到过这个问题。查看堆栈跟踪,您似乎正在使用 moo 工具(我也是)。看来,如果您删除它或更新 moo 工具,它应该可以解决 recaptcha 错误。感谢另一个类似的帖子:Recaptcha 2.0 error: reCAPTCHA placeholder element must be an element or id
推荐阅读
- c# - 如何在 C# 中将自定义对象序列化为 Json
- python - 第一个节目不顺利
- attributes - 在 index_sequence 上抑制警告“未使用的表达式结果”
- reactjs - 如何在全栈应用程序中正确更新用户存储的数据?
- bash - 如何用 shell 脚本变量替换一个文件中的列,并使用 awk 语句保留作为该列一部分的双引号
- google-chrome-extension - Native Messaging 在收到分块响应后停止工作
- angular - angular 10 抛出错误“您可能需要额外的加载器来处理这些加载器的结果。”
- r - 强制用户在 R 中安装所需的包
- php - 如何使用 PHP 将 JSON 嵌套值保存为 txt.file 或 Mysql 数据库
- reactjs - Codesandbox 现场预览