Javascript 通过在浏览器中单击“返回箭头”来跟随指定的链接

Javascript 通过在浏览器中单击“返回箭头”来跟随指定的链接,javascript,jquery,back,Javascript,Jquery,Back,我试图实现返回单击,在浏览器中返回到指定的链接,问题是该方法仅在用户单击时有效 window.onpopstate = function(event) { event.preventDefault(); window.open('file://............'); }; history.pushState({questionID: '555'}, null, null); 这是可以做到的,但不符合预期的浏览器行为;如果单击“上一步”,您将返回到上一页 也就是说,您可以利用wind

我试图实现返回单击,在浏览器中返回到指定的链接,问题是该方法仅在用户单击时有效

window.onpopstate = function(event) {
 event.preventDefault();
 window.open('file://............');
};
history.pushState({questionID: '555'}, null, null);

这是可以做到的,但不符合预期的浏览器行为;如果单击“上一步”,您将返回到上一页

也就是说,您可以利用
window.history
获得所需的结果

var currentTitle = document.title,
    currentUrl   = window.location.href;

window.history.pushState({questionID: '555'}, "Question 555", "/go-back/here");
window.history.pushState({}, currentTitle, currentUrl);

window.onpopstate = function(){
    // handle clicking back here - generally do reload as it will do a proper load of the page
    window.location.reload(true);
}

注意:对于您当前所在的同一域(即同一网站)上的URL,您只能
pushState

如果我错了,请更正我,但您有一个按钮可以进入一页,并且您希望从该页使用相同的按钮返回上一页?不,有浏览器按钮(来回)。当我第一次打开页面,并立即想点击浏览器按钮返回时,我不会转到浏览器的开头,而是在我指示的链接上@hritikchatterjee
history.go(-1)
会让用户在历史记录中后退一步,而无需单击按钮。但是,你想做的事情很让人困惑。这看起来真的很奇怪。我看不出有什么好的理由写这样的代码。您是否试图绕过禁止用户在没有与打开新窗口的页面交互的情况下打开新窗口的规定?这与我的代码类似,问题是转换是在第一次单击时立即执行的,而不是在第二次单击时执行的,以前第一次单击过该页面。@Dmitry您是否尝试过该代码?每次按下都会设置当前状态,即按下“后退”键会返回上一页,而不是刚刚按下的页面。第一次推送将状态设置为要“返回”到的页面,下一次推送将状态设置为当前页面。这意味着单击一次“后退”将使其重新加载第一个状态-因此标记为“返回”“此处”。任务是,当您第一次单击它时,将通过指定的链接进行转换,而不是通过历史记录进行转换。@d那么,单击按钮时,您只需要转到url吗?