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

Jquery 重新加载浏览器上的recaptcha后退按钮,jquery,reload,recaptcha,back,Jquery,Reload,Recaptcha,Back,我尝试了很多方法在回呼时重新加载图像,但无论我尝试什么,都会得到相同的图像。有些方法很接近,我可以看到图像刷新,但recaptcha服务器会做出响应,并重新显示以前的图像。单击“上一步”按钮时,是否有一些让图像重新加载的技巧?我不希望我的用户必须重新输入所有的表单信息,如果他们键入的安全字不正确。我还想避免存储所有信息。该页面是经典的asp,因此jquery或ajax方法将是我们的选择,或者我假设是这样。提前感谢。从window调用您的刷新方法。onload: 从window.onload调用刷

我尝试了很多方法在回呼时重新加载图像,但无论我尝试什么,都会得到相同的图像。有些方法很接近,我可以看到图像刷新,但recaptcha服务器会做出响应,并重新显示以前的图像。单击“上一步”按钮时,是否有一些让图像重新加载的技巧?我不希望我的用户必须重新输入所有的表单信息,如果他们键入的安全字不正确。我还想避免存储所有信息。该页面是经典的asp,因此jquery或ajax方法将是我们的选择,或者我假设是这样。提前感谢。

从window调用您的刷新方法。onload:


从window.onload调用刷新方法:


编辑:删除历史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。

编辑:删除历史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。

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

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

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

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

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

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

这是一种使用Chrome的简单方法:

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

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

当用户单击“上一步”按钮时,reCaptcha图像自动重新加载到Chrome中。

这是使用Chrome的简单方法:

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

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

当用户单击“上一步”按钮时,reCaptcha图像会自动重新加载到Chrome中。

我使用这行代码使其正确刷新:

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

我使用以下代码行成功地使其正确刷新:

body onLoad="javascript:Recaptcha.reload()"
但这种方法不是一个好的解决方案,因为焦点设置在recaptacha文本字段上,这意味着窗口向下滚动到页面底部,即recaptacha字段所在的位置,即使您第一次进入页面时,也不只是在按返回页面时。
此解决方案可行,但最好找到一个不将焦点设置在recaptacha输入字段上的解决方案。

测试此项:window.onload=function{alert1;}。你应该在回呼时看到警报。回呼时我确实会看到警报窗口,但是他们的服务器响应会更晚,所以当我使用重新加载方法时,他们的服务器会覆盖我的方法OK。。。也许这会对你有用:window.onload=function{setTimeoutfunction{Recaptcha.reload;},1000;}。它确实会重新加载,但一旦超时结束就会恢复到原始图像。感谢你的尝试,我非常感谢你花时间来帮助。测试:window.onload=function{alert1;}。你应该在回呼时看到警报。回呼时我确实会看到警报窗口,但是他们的服务器响应会更晚,所以当我使用重新加载方法时,他们的服务器会覆盖我的方法OK。。。也许这对你有用:window.onload=function{setTimeoutfunction{Recaptcha.reload;},1000;}。它确实会重新加载,但一旦超时结束,就会恢复到原始图像。谢谢你的尝试,我非常感谢你花时间来帮助。我看到的唯一问题是,我在表单上的所有用户输入都将被清除,除非我误解了这些事件。我知道我可以存储这些信息,但我希望能让内容更完整一些。好吧,那么,使用AJAX加载您的recaptcha。这将是一个不同的AJAX调用,因此应该作为新的调用被拉入。这听起来似乎会起作用。我还没有使用过AJAX,所以可能需要一段时间才能回复确认。我最终找到了一个超级简单的黑客解决了这个问题。我在问题的末尾加上了这个,因为我在接下来的5个小时内无法回答自己的问题。不过,我很感谢你的帮助,一旦我有足够的信誉,我就会进行投票。我看到的唯一问题是,我的所有用户在表单上的输入都将是清晰的
艾德,除非我误解了这些事件。我知道我可以存储这些信息,但我希望能让内容更完整一些。好吧,那么,使用AJAX加载您的recaptcha。这将是一个不同的AJAX调用,因此应该作为新的调用被拉入。这听起来似乎会起作用。我还没有使用过AJAX,所以可能需要一段时间才能回复确认。我最终找到了一个超级简单的黑客解决了这个问题。我在问题的末尾加上了这个,因为我在接下来的5个小时内无法回答自己的问题。不过,我很感谢你的帮助,一旦我有足够的信誉,我就会投票。好的,解决了!非常感谢我的朋友鲁本·阿亚拉。正确的方法是:body onLoad=javascript:Recaptcha.reload't这会使它正确地重新加载,但不会将焦点向下发送到页面底部。好的,解决了!非常感谢我的朋友鲁本·阿亚拉。正确的方法是:body onLoad=javascript:Recaptcha.reload't这会使它正确地重新加载,但不会将焦点向下移动到页面底部。