可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have a payment form in which user can enter all his card details,and when he clicks,he is taken to the banks 3D secure page. But,the problem is, the user can simply click on the back button of the browser and can go back to payment page, if he initiates a "pay now" again,there is a chance of multiple transaction and duplication of ref ids.
So my question is: is there some way I can redirect the user to a custom page when he clicks on back button which says "Session expired, so transaction has been cancelled." so that we avoid duplication of ref ids?
回答1:
Use the below jquery for redirect your own url when clicking browser back button
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'); } });
回答2:
You have to use history api, and for better compatibility use history.js plugin.
Handling pressing back button :
$(window).bind('onpopstate', function(e){ //your dark doings here });
回答3:
You can use Brooke's modified script. That's a long script (should be used as external file). You can download it here!
Then use the script like this:
bajb_backdetect.OnBack = function(){ document.location.href = 'http://google.com'; }