【发布时间】:2018-03-21 07:40:30
【问题描述】:
ReCaptcha 已停止在我们的淘汰赛网站上工作。
我在控制台中收到以下错误:
Uncaught Error: The bind parameter must be an element or id
at kr (recaptcha__en.js:369)
at nr (recaptcha__en.js:373)
at Object.or [as render] (recaptcha__en.js:374)
at loadReCaptcha (KnockoutBindings.js:135)
at KnockoutBindings.js:143
我有一个自定义绑定来处理 ReCaptcha。
<div id="reCaptcha" data-bind="reCaptcha: {key: 'my-key', callback: reCaptchaResponse}"></div>
经办人:
ko.bindingHandlers.reCaptcha = {
init: function (element, valueAccessor) {
var val = ko.utils.unwrapObservable(valueAccessor()),
key = ko.utils.unwrapObservable(val.key),
callback = val.callback;
function loadReCaptcha() {
if (typeof grecaptcha !== "undefined") {
grecaptcha.render(element.id, {
'sitekey': key,
'theme': 'light',
'callback': callback
});
}
else {
setTimeout(function () {
loadReCaptcha();
}, 150);
}
}
loadReCaptcha();
}
};
这以前可以工作,但最近停止工作。
我已经检查过:
- 密钥仍然有效
- reCaptcha div 已加载且可见
- 尝试更改 ID/使用另一个 div
- 尝试传递元素而不是 id
谷歌搜索确切的错误“绑定参数必须是元素或 id”仅提供指向 recaptcha.js 文件中的行的链接。
我找不到有关错误实际含义或解决方法的任何信息。
我还在页面右下角收到一条消息“此站点密钥未启用隐形验证码。”但我相信这是 reCaptcha 未加载的副作用。
【问题讨论】:
标签: javascript knockout.js recaptcha