将 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
"
-
将当前URL设置为临时URL,以便您的浏览器将显示此URL。在此步骤中,堆栈中将有一个URL,即
google.com/gmail#!/tempURL
。history.replaceState(null, document.title, location.pathname+"#!/tempURL");
将上一个URL 推送为新状态,所以现在您的浏览器将显示上一个URL,即
google.com/gmail
。history.pushState(null, document.title, location.pathname);
堆栈的当前状态:
- 第一个元素 :
google.com/gmail
- 最后一个元素 :
google.com/gmail#!/tempURL
- 第一个元素 :
现在将侦听器添加到侦听事件
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);
如何更改网址并检测后退按钮
相关文章:
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 如何使用手机浏览器上的按钮拨打USSD代码
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何在用户按下F5键或单击浏览器时显示自定义的fancybox's后退/关闭按钮
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- 当使用ajax并将html数据保存为对象时,收听浏览器返回按钮.好的或坏的
- '返回'浏览器按钮返回白色页面
- ReactJS:使用浏览器按钮导航时保存状态
- 如何在jquery中检测浏览器的后退按钮,如果有任何对话框打开,请关闭它
- 使用Javascript或AngularJS控制或禁用浏览器返回按钮
- 从浏览器访问页面时执行js函数's后退按钮
- 浏览器返回按钮上的确认框
- 使用replaceWith同时单击按钮,而不刷新浏览器
- 关闭浏览器时发出警报,关闭选项卡并前后单击按钮时发出警报
- 检查浏览器后退按钮历史记录
- 点击浏览器的“后退”按钮显示的是JSON而不是HTML(使用Rails和d3.js)
- Chrome扩展程序:浏览器操作单击按钮工作一次
- 单击一个按钮浏览器选项卡应关闭(它不是弹出窗口)
- 我可以禁用“;背面“;按钮浏览器功能
- 单击上一个按钮浏览器后,存储和检索数据的最佳方式是什么