在浏览器后退按钮上重新加载recaptcha
我在寻呼时尝试了很多方法来重新加载图像,但无论我尝试什么,我都得到相同的图像。 有些方法很接近(我可以看到图像刷新,但是recaptcha服务器响应并重新出现前一个图像)。 单击后退按钮时是否有一些技巧可以重新加载图像? 如果用户输入的安全字不正确,我不希望我的用户必须重新输入所有表单信息。 我也想避免存储所有信息。 该页面是经典的asp,因此jquery或ajax方法将成为路径,或者id假设。 提前致谢。
我想出了一个解决这个问题的快速黑客攻击。 在带有recaptcha的页面上添加以下jquery
只需将“#form_div”替换为您表单中的任何div。 现在,当用户点击后退按钮时,它会刷新recaptcha图像。 从各方面来讲,这都是一个黑客,但它对我有用。
从window.onload
调用您的刷新方法:
window.onload = function(){ /* refresh here */ }
编辑:删除历史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。
这是适用于Chrome的简单方法:
在HTML主体上添加重载function如下:
当用户单击后退按钮时, reCaptcha
图像会在Chrome中自动重新加载。
我设法通过使用以下代码行来正确刷新它:
body onLoad="javascript:Recaptcha.reload()"
但是这种方法不是一个好的解决方案,因为焦点设置在recaptacha文本字段上,这意味着窗口向下滚动到页面的底部,这是recaptacha字段的位置,即使您第一次进入页面(不是只有当按“BACK”到页面时)。 这个解决方案有效,但最好找到一个不将重点放在recaptacha输入字段上的解决方案。