0

我在我的 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 更改,我可以使用相同的程序来防止向退格键发送垃圾邮件,这不会触发我的页面转换,但无论我做什么,触发 url 更改,因此它会导致历史记录“不同步”,也就是不起作用。

我试图在退格上使用它:

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

正如我所说,这确实可以防止它被垃圾邮件发送,但它仍然会更改浏览器 URL,并搞砸一切。

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

4

0 回答 0