You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript获取浏览器回退时的上一个URL?

实现方法及示例代码

浏览器回退操作属于历史导航,普通的document.referrer无法正确获取回退场景的上一页URL(因为回退不是HTTP跳转,referrer记录的是初始跳转来源),可以通过两种方式实现需求:

方法一:通过History API主动存储上页URL(需控制跳转前页面)

如果能修改跳转前页面(Stackoverflow)的代码,可在跳转时将当前URL存入历史状态:

// 在Stackoverflow页面执行跳转逻辑时
const currentPageUrl = window.location.href;
// 用pushState存入当前URL到历史状态,再跳转至Google
history.pushState({ prevUrl: currentPageUrl }, '', 'https://www.google.com');

在Google页面监听popstate事件,点击回退时即可从状态中取出上页URL:

// 在Google页面添加监听
window.addEventListener('popstate', (event) => {
  if (event.state?.prevUrl) {
    console.log('上一页URL:', event.state.prevUrl);
    // 这里可执行后续业务逻辑
  }
});

方法二:通过Performance API获取导航历史(无需控制跳转前页面)

如果无法修改跳转前页面的代码,可在回退后的页面(Stackoverflow)利用浏览器的Performance接口获取导航信息:

// 在Stackoverflow页面添加监听,页面加载完成后检查导航类型
window.addEventListener('load', () => {
  const navEntry = performance.getEntriesByType('navigation')[0];
  // 判断是否为回退/前进导航
  if (navEntry.type === 'back_forward') {
    const previousPageUrl = navEntry.previousUrl;
    console.log('上一页URL:', previousPageUrl);
  }
});

注意:该方法依赖PerformanceNavigationTiming接口,现代主流浏览器均支持,旧版浏览器需做兼容性判断。

内容的提问来源于stack exchange,提问作者user20983281

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 23:05:04