设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间01 现在时间01 缓存数据 当你走完一段之后回头看,你会发现,那些真正能被记得的事真的是没有多少,真正无法忘记的人屈指可数,真正有趣的日子不过是那么一些,而真正需要害怕的也是寥寥无几。

当你走完一段之后回头看,你会发现,那些真正能被记得的事真的是没有多少,真正无法忘记的人屈指可数,真正有趣的日子不过是那么一些,而真正需要害怕的也是寥寥无几。

查看: 480|回复: 2

js控制浏览器前进、后退、页面跳转详细方法和示例

[复制链接]

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:16
  • 打卡月天数:0
  • 打卡总奖励:233
  • 最近打卡:2025-03-01 05:37:23
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
44
主题
34
精华
0
金钱
362
积分
92
注册时间
2023-8-13
最后登录
2025-8-30

发表于 2025-8-30 00:58:48 | 显示全部楼层 |阅读模式
前言

在 JavaScript 中,控制浏览器导航(前进、后退、跳转)主要通过 window 对象的属性和方法实现。以下是详细方法和示例:

1. 页面跳转(最常用)


方法1:window.location.href
  1. // 跳转到指定URL(会在浏览器历史记录中添加新条目)
  2. window.location.href = 'https://www.example.com';

  3. // 等同于:
  4. window.location = 'https://www.example.com';
复制代码
方法2:window.location.replace()
  1. // 跳转到指定URL(不会添加历史记录,无法后退)
  2. window.location.replace('https://www.example.com');
复制代码

  • 适用场景:支付完成后禁止回退到支付页。

方法3:window.open()
  1. // 在新标签页打开URL
  2. window.open('https://www.example.com', '_blank');

  3. // 在当前页打开(等同href)
  4. window.open('https://www.example.com', '_self');
复制代码
2. 控制前进/后退


方法1:window.history.back()
  1. // 后退一步(等同浏览器后退按钮)
  2. window.history.back();
复制代码
方法2:window.history.forward()
  1. // 前进一步(等同浏览器前进按钮)
  2. window.history.forward();
复制代码
方法3:window.history.go()
  1. // 后退两步
  2. window.history.go(-2);

  3. // 前进三步
  4. window.history.go(3);

  5. // 刷新当前页(等同F5)
  6. window.history.go(0);
复制代码
3. 修改历史记录(无刷新跳转)


方法:window.history.pushState() / replaceState()
  1. // 添加历史记录(不触发页面跳转)
  2. window.history.pushState({page: 1}, 'Title 1', '/page1');

  3. // 替换当前历史记录
  4. window.history.replaceState({page: 2}, 'Title 2', '/page2');
复制代码

  • 参数说明

      1. state
      复制代码
      :关联的状态对象(可通过
      1. history.state
      复制代码
      读取)
      1. title
      复制代码
      :大多数浏览器忽略此参数
      1. url
      复制代码
      :新的相对或绝对路径(需同源)

  • 适用场景:单页应用(SPA)路由控制。

4. 监听导航事件
  1. // 监听前进/后退(配合pushState使用)
  2. window.addEventListener('popstate', (event) => {
  3.   console.log('当前状态:', event.state);
  4. });

  5. // 监听hash变化
  6. window.addEventListener('hashchange', () => {
  7.   console.log('Hash变为:', window.location.hash);
  8. });
复制代码
5. 完整示例:带状态管理的导航
  1. // 添加历史记录并跳转(无刷新)
  2. document.getElementById('btn').addEventListener('click', () => {
  3.   const state = { userId: 123 };
  4.   window.history.pushState(state, '', '/profile');

  5.   // 动态更新页面内容(模拟SPA)
  6.   document.body.innerHTML = `<h1>用户 ${state.userId} 的主页</h1>`;
  7. });

  8. // 处理后退按钮
  9. window.addEventListener('popstate', (event) => {
  10.   if (event.state) {
  11.     document.body.innerHTML = `<h1>用户 ${event.state.userId} 的主页</h1>`;
  12.   }
  13. });
复制代码
注意事项


  • 同源策略

      1. location.href
      复制代码
      可跨域跳转,但
      1. pushState()
      复制代码
      的 URL 必须同源。

  • SEO影响

    • 使用
      1. pushState()
      复制代码
      时需配合服务端渲染,否则搜索引擎无法抓取。

  • 浏览器兼容性

      1. pushState()
      复制代码
      1. replaceState()
      复制代码
      不支持 IE9 及以下。

  • 安全限制

    • 某些浏览器会阻止
      1. window.open()
      复制代码
      在非用户触发的代码中执行(如异步回调)。


方法对比

方法是否添加历史记录是否刷新页面典型用途
  1. location.href
复制代码
✅✅普通跳转
  1. location.replace()
复制代码
❌✅禁止回退的跳转
  1. history.back()
复制代码
-✅模拟浏览器后退
  1. history.pushState()
复制代码
✅❌SPA路由
  1. window.open()
复制代码
✅❌/✅新标签页打开根据你的需求选择合适的方法!

总结

到此这篇关于js控制浏览器前进、后退、页面跳转详细方法和示例的文章就介绍到这了,更多相关js控制浏览器前进后退页面跳转内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:1
  • 打卡总奖励:11
  • 最近打卡:2025-12-07 22:47:18
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
23
积分
4
注册时间
2024-11-19
最后登录
2025-12-7

发表于 2025-8-31 14:42:14 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
12
积分
4
注册时间
2024-4-7
最后登录
2024-4-7

发表于 2025-9-1 12:09:25 | 显示全部楼层
顶顶更健康!!!
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表