Javascript 防止通过“后退”按钮取消表单发布
我正在尝试实现一些代码,以防止后退按钮在我的站点的页面上执行任何操作。页面发布一个表单来处理付款,所以不要希望用户按下back键,否则它会导致一种奇怪的用户体验。有服务器端代码来处理它,但希望尽可能在客户端阻止它 我的问题是,即使我使用这里提到的方法: 问题在于,尽管页面现在永远不会返回,但只要按下“返回”按钮,表单POST就会被取消(使用Chrome浏览器) 我目前拥有的代码是:Javascript 防止通过“后退”按钮取消表单发布,javascript,jquery,html,asp.net-mvc,back-button,Javascript,Jquery,Html,Asp.net Mvc,Back Button,我正在尝试实现一些代码,以防止后退按钮在我的站点的页面上执行任何操作。页面发布一个表单来处理付款,所以不要希望用户按下back键,否则它会导致一种奇怪的用户体验。有服务器端代码来处理它,但希望尽可能在客户端阻止它 我的问题是,即使我使用这里提到的方法: 问题在于,尽管页面现在永远不会返回,但只要按下“返回”按钮,表单POST就会被取消(使用Chrome浏览器) 我目前拥有的代码是: function() { if(window.history && win
function() {
if(window.history && window.history.pushState) {
window.history.pushState({ page: 1 }, $(document).find("title").text(), null);
window.addEventListener('popstate', function (e) {
e.preventDefault();
e.stopPropagation();
window.history.pushState({ page: 1 }, $(document).find("title").text(), null);
});
}
else {
window.location.hash = "pp";
window.onhashchange = function (e) {
e.preventDefault();
e.stopPropagation();
window.location.hash = "pp";
};
}
}
我能在这里做点什么吗?不幸的是,你能做的不多。您可以停止按下后退按钮(更改页面)的最终结果,但无法停止单击该按钮的副作用(导致当前挂起的请求停止) 您所能做的最好的事情是在按下后退按钮时捕获,确定表单是否已发送但未收到响应,然后提醒用户表单可能已发送。然后,您可以尝试将用户引导到下一个页面,如果没有收到付款页面,您可以将其设计为返回到付款页面
这样的问题很难针对边缘情况进行分析。:) 不幸的是,你能做的不多。您可以停止按下后退按钮(更改页面)的最终结果,但无法停止单击该按钮的副作用(导致当前挂起的请求停止) 您所能做的最好的事情是在按下后退按钮时捕获,确定表单是否已发送但未收到响应,然后提醒用户表单可能已发送。然后,您可以尝试将用户引导到下一个页面,如果没有收到付款页面,您可以将其设计为返回到付款页面
这样的问题很难针对边缘情况进行分析。:) 最好的方法就是使用模式并完成它。最好的方法就是使用模式并完成它。