我有一张付款表格,用户可以在其中输入他的所有卡片详细信息,当他点击时,他会被带到银行3D安全页面。但是,问题是,用户只需点击浏览器的后退按钮即可返回付款页面,如果他再次启动“立即付款”,则可能会出现多次交易和重复操作。< / p>
所以我的问题是:有什么方法可以在用户点击后退按钮时将用户重定向到自定义页面,该按钮显示“会话已过期,因此交易已被取消”。这样我们就可以避免重复引用?
答案 0 :(得分:15)
单击浏览器后退按钮时,使用以下jquery重定向您自己的URL andipedia.com
jQuery(document).ready(function($) {
if (window.history && window.history.pushState) {
$(window).on('popstate', function() {
var hashLocation = location.hash;
var hashSplit = hashLocation.split("#!/");
var hashName = hashSplit[1];
if (hashName !== '') {
var hash = window.location.hash;
if (hash === '') {
alert('Back button was pressed.');
window.location='www.example.com';
return false;
}
}
});
window.history.pushState('forward', null, './#forward');
}
});
答案 1 :(得分:0)
您必须使用历史记录API,为了更好的兼容性,请使用history.js plugin。
处理后退按钮:
$(window).bind('onpopstate', function(e){
//your dark doings here
});
答案 2 :(得分:0)
您可以使用Brooke的修改过的脚本。这是一个很长的脚本(应该用作外部文件)。您可以下载here!
然后使用这样的脚本:
bajb_backdetect.OnBack = function(){
document.location.href = 'http://google.com';
}
答案 3 :(得分:0)
如果用户单击“后退”按钮,这会将您重定向到您指定的 页面(100%工作)
window.history.pushState({page: 1}, "", "");
window.onpopstate = function(event) {
if(event){
window.location.href = 'https://www.google.com/';
// Code to handle back button or prevent from navigation
}
}