使用pushState / popState操作浏览器历史记录时,退格会扰乱页面转换

时间:2015-05-13 06:39:29

标签: jquery html5 pushstate backspace popstate

我在我的ajax网站上使用pushstate / popstate,它工作正常,当我点击链接时,我使用这个程序:

var locked = false;

$(document.body).unbind().on('click', '.transition', function (e) {
 e.preventDefault();
        if (!locked) {
            locked = true;
            setTimeout(unlock, 1000);
        }
        code here...
});

哪个工作正常,但是当我按退格键时我很难阻止URL更改,我可以使用相同的程序来防止垃圾邮件退格按钮,这不会触发我的页面转换,但不管是什么我这样做,触发网址更改,因此导致历史记录“不同步”#34;又不起作用。

我试图在退格上使用它:

$('html').keyup(function(e) {       
     if(e.keyCode === 8) {
        e.preventDefault();
        if (!locked) {
            locked = true;
            setTimeout(unlock, 1000);          
        }
     }
}); 

这可以防止它像我说的那样被垃圾邮件发送,但它仍会改变浏览器的网址,并搞砸了所有内容。

tldr: 是否有可能使退格键正常工作,并防止它搞乱我操纵的浏览器历史记录,因为我在加载我的ajax内容时使用了页面转换?

0 个答案:

没有答案