在浏览器后退按钮上重新加载recaptcha

时间:2013-01-10 22:30:56

标签: jquery reload recaptcha back

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

5 个答案:

答案 0 :(得分:2)

我找到了解决此问题的快速黑客攻击。在带有recaptcha的页面上添加以下jquery

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

只需将“#form_div”替换为您表单中的div。现在,当用户点击后退按钮时,它会刷新recaptcha图像。从各方面来讲,这都是一个黑客,但它对我有用。

答案 1 :(得分:1)

window.onload

调用您的刷新方法
window.onload = function(){ /* refresh here */ }

答案 2 :(得分: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。

答案 3 :(得分:1)

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

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

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

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

答案 4 :(得分:1)

我设法通过使用以下代码行来正确刷新它:

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

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