纯JS页面跳转

在JavaScript中实现页面跳转的常用方法及特点如下:

一、基础跳转方法

1‌. window.location.href‌
最常用的跳转方式,直接修改当前页面URL实现跳转,保留浏览历史。

window.location.href = 'https://example.com';  // 跳转到目标页面 ‌:ml-citation{ref="1,3" data="citationList"}

2‌. window.location.replace()‌
替换当前页面为新URL,不保留原页面的浏览历史(用户无法通过“后退”返回)。

window.location.replace('https://example.com');  // 替换当前页面 ‌:ml-citation{ref="3,5" data="citationList"}

‌3. window.location.assign()‌
功能与href类似,但通过方法调用实现跳转,保留历史记录。

window.location.assign('https://example.com');  // 跳转并保留历史 ‌:ml-citation{ref="5" data="citationList"}

二、带参数跳转

1‌. URL查询字符串‌
在目标URL后附加参数,通过window.location.search在接收页面解析。

window.location.href = 'https://example.com?key1=value1&key2=value2';  // 跳转传参 ‌:ml-citation{ref="1,6" data="citationList"}

‌2. 表单提交‌
通过JavaScript触发表单的submit()方法,以GET/POST方式传递参数。

<form id="myForm" action="target.html" method="get">
    <input type="hidden" name="param" value="data">
</form>
<script>document.getElementById('myForm').submit();</script>  // 提交传参 ‌:ml-citation{ref="3,6" data="citationList"}

三、特殊场景跳转

‌`. HTML标签模拟点击‌
通过JavaScript触发标签的点击事件实现跳转。

<a id="link" href="https://example.com">Link</a>
<script>document.getElementById('link').click();</script>  // 模拟点击跳转 ‌:ml-citation{ref="3" data="citationList"}

‌2. HTML5 History API‌
无刷新修改URL并更新历史记录(需配合popstate事件处理)。

history.pushState({
    
    }, '', '/new-page');  // 添加历史记录 ‌:ml-citation{ref="3,6" data="citationList"}
  1. 窗口层级控制‌
  • top.location:顶级窗口跳转(适用于框架页)。
  • self.location:当前窗口跳转。
top.location.href = 'https://example.com';  // 顶级窗口跳转 ‌:ml-citation{ref="7,8" data="citationList"}

注意事项

  • 兼容性‌:window.navigate()方法仅支持旧版IE,现代浏览器已弃用 ‌。
  • ‌安全性‌:跨域跳转可能被浏览器策略限制。‌
  • 用户体验‌:replace()适用于无需返回的场景(如登录后跳转)‌。

通过上述方法可根据需求灵活选择跳转方式,同时结合参数传递实现数据交互。