Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以检测是否向用户显示了不可见的Recaptcha?_Javascript_Recaptcha_Invisible Recaptcha - Fatal编程技术网

Javascript 是否可以检测是否向用户显示了不可见的Recaptcha?

Javascript 是否可以检测是否向用户显示了不可见的Recaptcha?,javascript,recaptcha,invisible-recaptcha,Javascript,Recaptcha,Invisible Recaptcha,在我的网页中,我通过调用函数grecaptcha.execute(),基于不可见的Recaptcha验证表单。通常情况下,这对用户来说是不可见的;他们看到的只是在grecaptcha验证完成后触发的表单提交 有时,会触发不太可见的Recaptcha行为(例如,如果用户行为可疑),并向用户显示他们必须解决的常规验证码。当这种情况发生时,我希望通过编程来检测它 调用grecaptcha.execute(),是否可以通过编程方式发现是否向用户显示了验证码? 到目前为止,我已经尝试使用Mutation

在我的网页中,我通过调用函数
grecaptcha.execute()
,基于不可见的Recaptcha验证表单。通常情况下,这对用户来说是不可见的;他们看到的只是在
grecaptcha
验证完成后触发的表单提交

有时,会触发不太可见的Recaptcha行为(例如,如果用户行为可疑),并向用户显示他们必须解决的常规验证码。当这种情况发生时,我希望通过编程来检测它

调用
grecaptcha.execute()
,是否可以通过编程方式发现是否向用户显示了验证码?


到目前为止,我已经尝试使用
MutationEvents
mutationobserver
观察DOM。不幸的是,所有有趣的事情都发生在
iframe
中,似乎无法判断是否显示了完整的验证码

我不想测量
grecaptcha
调用我给它的回调需要多长时间,因为这样做不可靠(例如,移动连接速度慢会影响结果)


标记:

<form id="form" method="post" action="/form">
    Name: (required) <input id="name" name="name">
    <div id="g-recaptcha-div"
        class="g-recaptcha"
        data-sitekey="keeeey"
        data-callback="onRecaptchaDone"
        data-size="invisible"></div>
    <button id="thebutton">Submit</button>
</form>

您是如何使用recaptcha的,在提交时是否有针对recaptcha的回调?你觉得怎么样?是的,对不起,我有回电话。它使用recaptcha API提供的令牌进行调用。但无论是否显示验证码,每次都会以相同的方式调用它。你能在这里显示你的代码吗?初始化recaptcha?我的意思是,你在使用
grecaptcha.render(…)
?我已经把它添加到问题中了。我使用的是不可见的API,所以没有调用
render
。在表单提交方法中执行
grecaptcha.execute()
在哪里?
function onSubmit(event) {
    event.preventDefault();
    grecaptcha.reset();
    grecaptcha.execute();
}
function onRecaptchaDone(token) {
    form.submit();
}
window.onload = function() {
    form.onsubmit = onSubmit;
}