gpt4 book ai didi

javascript - 防止表单 POST 被后退按钮取消

转载 作者:行者123 更新时间:2023-11-28 07:12:14 26 4
gpt4 key购买 nike

我正在尝试实现一些代码来防止后退按钮在我的网站页面上执行任何操作。页面发布一个表单来处理付款,因此不希望用户按回,否则最终会带来奇怪的用户体验。有服务器端代码来处理它,但希望尽可能在客户端防止它。

我的问题是,即使我使用这里提到的方法:how to stop browser back button using javascript

问题是,虽然页面现在永远不会返回,但一旦按下后退按钮,表单 POST 就会被取消。(使用 Chrome 浏览器。)

我目前拥有的代码是:

    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";
};
}
}

我在这里实际上能做些什么吗?

最佳答案

不幸的是,您无能为力。您可以阻止按后退按钮(更改页面)的最终结果,但无法阻止点击它的副作用(导致当前待处理的请求停止) )。

您能做的最好的事情就是捕获按下后退按钮的时间,确定表单是否已发送但未收到响应,然后提醒用户表单可能已发送。然后,您可以尝试将用户引导到下一页,您可以设计该页面,以便在未收到任何信息时返回到付款页面。

像这样的问题很难分析边缘情况。 :)

关于javascript - 防止表单 POST 被后退按钮取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com