Javascript/jQuery:历史记录的任何事件。是否继续(-1)?

Javascript/jQuery:历史记录的任何事件。是否继续(-1)?,javascript,jquery,forms,events,post,Javascript,Jquery,Forms,Events,Post,在我的表单服务器端验证中,我使用history.go(-1)以在验证错误时重定向回。这样表单数据就保留在那里,用户可以修复数据并重新提交表单 在我使用验证码之前,它工作得很好。如果用户提交了错误的验证码,服务器验证将使用history.go(-1)将其重定向回原来的位置。这样,页面实际上不会重新加载,验证码图像也不会刷新。因此,用户不断提交错误的验证码 那么,每次页面通过history.go(-1)重定向回来时,我有没有办法触发一个事件或函数。这样我就可以调用一个函数来重新加载验证码图像 我必须

在我的表单服务器端验证中,我使用
history.go(-1)以在验证错误时重定向回。这样表单数据就保留在那里,用户可以修复数据并重新提交表单

在我使用验证码之前,它工作得很好。如果用户提交了错误的验证码,服务器验证将使用
history.go(-1)将其重定向回原来的位置。这样,页面实际上不会重新加载,验证码图像也不会刷新。因此,用户不断提交错误的验证码

那么,每次页面通过
history.go(-1)重定向回来时,我有没有办法触发一个事件或函数。这样我就可以调用一个函数来重新加载验证码图像

我必须这样做,因为我的表单处理是在一个单独的服务器上完成的


谢谢。

您的解决方案是使验证码图像不可缓存。您需要指示您的验证码脚本发送一个带有图像的响应头,要么是“过期”日期在过去,要么是无缓存日期。这样,浏览器将在每个历史记录上重新加载验证码。继续(-1)

我想你需要一个历史适配器:

History.Adapter.bind (window, 'statechange', function () {});
这将在每次历史状态更改时触发函数。

这是您所需要的。

history.go(-1)
是一种惰性解决方案,此外,如果要返回,如何显示错误?
var url = location.href;
window.onpopstate = function(event) {
    if(url != location.href) {
        /*Your Function here
         * I'm using this to load the contentBox when user goes back or forward in  
         * browserhistory -- perfect for sites with ajax
         * works on all browser but u need Jquery. (Safari can't use window.location.href)
         * for functions to add dynamic params or removing them just ask ;)
         * define the url var to prevent function to fire on reload
         */
    }
};