繁体   English   中英

向浏览器后退按钮添加URL

[英]Add a URL to browser back button

我正在尝试在浏览器的后退按钮上设置URL。 我看了几个例子,发现了这段代码,它可以正常工作。 问题是,当我单击锚点按钮时,其效果与单击浏览器后退按钮时的效果相同。.这不好。 我相信问题在于这行代码-我可能错了-

window.addEventListener('popstate', function(event){ ... })

这是代码-

history.pushState(null, null, '<?php echo $_SERVER["REQUEST_URI"]; ?>');
window.addEventListener('popstate', function(event) {
        window.location.assign("http://newurl.com");
});

我整天都在努力,找不到解决方案。 有人可以帮忙吗?

已经给出了这个答案,但是我将尝试解释我使用pushState了解的内容。

考虑您的网址是“ google.com/gmail

  1. 将currentURL设置为临时URL,以便浏览器将显示此URL。 在这一步,堆栈中将有一个网址,即google.com/gmail#!/tempURL

    history.replaceState(null, document.title, location.pathname+"#!/tempURL");

  2. 将前一个URL推送为新状态,现在您的浏览器将显示前一个google.com/gmailgoogle.com/gmail

    history.pushState(null, document.title, location.pathname);

    堆栈的当前状态:

    1. 第一个元素: google.com/gmail
    2. 最后一个元素: google.com/gmail#!/tempURL
  3. 现在添加监听器来监听事件

     window.addEventListener("popstate", function() { if(location.hash === "#!/tempURL") { history.replaceState(null, document.title, location.pathname); //replaces first element of last element of stack with google.com/gmail so can be used further setTimeout(function(){ location.replace("http://www.yahoo.com/"); },0); } }, false); 

如何更改网址和检测后退按钮

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM