reCAPTCHA会话到期时触发事件

我正在研究谷歌reCAPTCHA。 它工作正常但是当reCAPTCHA会话在一定时间后到期并且用户再次单击复选框以填充reCAPTCHA时,谷歌会显示警告说Error: invalid load parameters. 在用户重新加载页面之前,没有任何工作。

包含session expired消息的div块具有类rc-anchor-expired-msg 。 我尝试使用这个类来实现div show事件,以便在会话到期后立即触发事件并尝试重置recaptcha。 但这也不起作用。

是否有回调函数或某些东西,我可以在会话到期时重置recaptcha。

在渲染reCAPTCHA时可以传递一个expired-callback参数,然后可以调用grecaptcha.reset()方法。

例如:

把它放在标题中。

  

把它放在将用于渲染reCAPTCHA的元素之后。

 

这会在每次会话到期时重置reCAPTCHA。 摆脱了Error: invalid load parameters.的问题Error: invalid load parameters. 我的警报窗口。

如果需要解释它是如何工作的,当加载api时,它会从头脚本标记中调用callback函数。 此函数呈现reCAPTCHA并将expired-callback声明为expCallback函数,该函数仅将reCAPTCHA重置为其原始状态。

您应该能够在自动呈现reCAPTCHA(而不是像上面那样明确地呈现它)小部件时使用data-expired-callback作为标记属性,但是当我以这种方式尝试时,回调对我来说不起作用。