最直接安全的跳转方式是赋值 window.location.href,需在 domcontentloaded 或 onload 后执行;history.pushstate() 不适用于跨 html 文件跳转;表单提交更可靠,注意 action 路径解析规则;微信中跳转须绑定用户手势事件,避免被拦截。

用 window.location.href 跳转最直接,但别在页面加载中乱改它
浏览器里跳转网页,本质是改当前标签页的 URL。最常用也最安全的方式就是赋值 window.location.href,比如:
window.location.href = "https://example.com/page2.html";它会立刻触发导航,且保留浏览器后退栈。但要注意:如果这段代码写在
<script></script> 标签里且没加任何时机控制(比如没等 DOM 加载完),可能被某些浏览器(尤其是旧版 Safari)静默忽略;更常见的是,在 window.onload 或 DOMContentLoaded 之后再执行更稳妥。
想不刷新、不丢历史记录?用 history.pushState() 不行,那是单页应用的事
有人看到“两个 HTML5 网页”,误以为能用 history.pushState() 实现无刷新切换——不行。pushState() 只能改变地址栏和历史记录,**不会加载新 HTML 文档**。它要求你手动用 fetch() 拉新内容、解析、替换 DOM,整个流程得自己兜底。真要跨 HTML 文件跳转,就老老实实走导航。否则你会遇到:地址变了,但页面还是旧的,控制台也没报错,纯属逻辑错位。
表单提交也能跳转,但 action 和 method 决定行为
如果跳转由用户点击触发,用表单比写 JS 更可靠。比如:
<form action="page2.html" method="GET"><button type="submit">去下一页</button></form>这里
action 是目标路径,method="GET" 表示参数拼在 URL 后;若用 POST,则需服务端配合接收数据。注意:如果 action 是相对路径,它基于当前 HTML 文件所在目录解析,不是基于当前 URL 路径——这点常导致 404。
html5动态显示媒体视频播放器代码,这个我们在企业网站或者教学网站会用到,教学网站,有一些视频要播放,那么就会用到播放器,可以参考源码,看看播放器的效果是如何实现的,php中文网推荐下载!
移动端微信里跳转失败?检查是否被 location.replace() 或弹窗拦截了
微信内置浏览器对自动跳转敏感。如果用 window.location.replace("page2.html"),它会删掉当前页历史,用户点返回就回不去;更麻烦的是,如果跳转不在用户手势(如 click)回调里触发,iOS 微信会直接拦截,控制台可能只显示 Navigation is blocked。解决办法只有两个:
- 确保跳转代码在
onclick或ontouchend回调里 - 避免在
setTimeout或 Ajax 成功回调里偷偷跳转
立即学习“前端免费学习笔记(深入)”;
真正容易被忽略的点是路径解析规则和微信的手势上下文限制——前者靠写死绝对路径或用 new URL("page2.html", document.baseURI) 避免歧义,后者必须把跳转动作绑到真实用户操作上,不能靠 JS 自动触发。










