1

回页时我尝试了多种方法来重新加载图像,但无论我尝试什么,我都会得到相同的图像。一些方法很接近(我可以看到图像刷新,但recaptcha 服务器响应并重新出现以前的图像)。单击后退按钮时是否有一些技巧可以让图像重新加载?我不希望我的用户在输入错误的安全词时必须重新输入所有表单信息。我还想避免存储所有信息。该页面是经典的 asp,因此 jquery 或 ajax 方法将是要走的路线,或者 id 假设。提前致谢。

4

5 回答 5

2

我想出了一个快速破解来解决这个问题。在带有recaptcha 的页面上添加以下jquery

<script>
$(document).ready(function(){
  $("#form_div").Show();
);
</script>

只需将“#form_div”替换为包含您的表单的任何 div。现在,当用户点击后退按钮时,它会刷新 recaptcha 图像。从任何意义上来说,这都是一种黑客攻击,但它对我有用。

于 2013-01-18T04:42:42.397 回答
1

从以下位置调用您的刷新方法window.onload

window.onload = function(){ /* refresh here */ }
于 2013-01-10T22:40:37.377 回答
1

编辑:删除历史 API 答案以显示可能的 AJAX 答案。

使用 jQuery,这非常容易。

$(window).on('load',function(){
    $('#RecaptchaContainer').load('/path/to/recaptcha.php',function(){
         // any javascript you need to perform on the recaptcha
    });
});

您可以在该文件中包含所有 recaptcha HTML,但您可以在该回调函数中包含所有 javascript。

于 2013-01-10T23:08:11.770 回答
1

这是适用于 Chrome 的简单方法:

在 HTML 正文上添加重新加载功能,如下所示:

<body onload="javascript:Recaptcha.reload()">

reCaptcha当用户单击后退按钮时,图像会在 Chrome 中自动重新加载。

于 2013-06-18T02:36:34.187 回答
1

通过使用这行代码,我设法让它正确刷新:

body onLoad="javascript:Recaptcha.reload()"

但是这种方法不是一个好的解决方案,因为焦点设置在 recaptacha 文本字段上,这意味着窗口向下滚动到页面底部,即 recaptacha 字段所在的位置,即使您是第一次进入页面(不是仅当按“返回”到页面时)。此解决方案有效,但最好找到一个不将焦点设置在 recaptacha 输入字段上的解决方案。

于 2014-02-18T09:49:31.513 回答