讲师中心 微信公众号
AI工具推荐 视频效率加速

如何从一个html页面跳转到另外一个页面

阿明姑娘_4996

阿明姑娘_4996

发布时间:2026-02-13 15:40:01

|

479人浏览过

|

来源于php中文网

原创

最直接的跳转方式是赋值 window.location.href,需写全协议;需返回记录时用 location.replace();表单提交注意 method 和编码;单页应用应使用路由库方法而非硬刷。

如何从一个html页面跳转到另外一个页面

用 window.location.href 跳转最直接

浏览器环境里,改写 window.location.href 是最常用、最可靠的方式。它会立即触发导航,且兼容所有现代浏览器和 IE9+。

常见错误是误写成 window.location = url 或漏掉 http:// 前缀导致相对路径解析出错。比如当前页是 https://a.com/page1.html,设 window.location.href = "b.html" 会跳到 https://a.com/b.html;但设成 "//b.com" 就走协议相对路径,容易被忽略。

  • 推荐显式写全协议: window.location.href = "https://example.com/login.html"
  • 跳转前可加简单判断: if (url && url.startsWith("https://")) { window.location.href = url; }
  • 避免在异步回调里多次赋值,否则可能触发多次跳转(尤其配合 fetch 成功后跳转时)

location.replace() 不留返回记录

如果不想让用户点「返回」回到上一页(比如登录成功后跳主页、支付完成跳结果页),该用 location.replace()。它用新页面替换当前 history 条目,不新增记录。

和 href 赋值不同,replace() 不会触发页面卸载前的 beforeunload 提示,适合无数据需保存的场景。但若用户刚填了表单还没提交,又误用了 replace(),刷新就丢数据——这点常被忽略。

立即学习“前端免费学习笔记(深入)”;

html-to-pptx-converter
html-to-pptx-converter

使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。

下载
  • 正确用法:window.location.replace("https://example.com/success.html")
  • 不能写成 window.location.replace = url(这是赋值,不是调用)
  • 服务端重定向(如 HTTP 302)无法替代它:后者由浏览器控制跳转时机,前者依赖网络响应,有延迟且不可控

表单 submit() 也能跳转,但有隐含行为

如果目标页接受 GET 参数,用表单提交比手拼 URL 更安全(自动编码特殊字符)。但默认行为是发送请求并跳转,容易和 AJAX 混淆。

典型翻车点:给表单绑了 preventDefault() 却忘了手动跳转,或者没设 method="GET" 导致发 POST 请求,目标页收不到参数。

  • 最小可用结构:
    <form action="/search" method="GET">
      <input name="q" value="js">
      <button type="submit">搜索</button>
    </form>
  • JS 触发提交:document.querySelector("form").submit(),注意它不校验 required 字段
  • 不要对已提交的表单重复调用 submit(),部分浏览器会报错 TypeError: Cannot submit form with no action

单页应用里别硬刷页面

用 React/Vue 等框架时,直接改 window.location.href 会强制整页刷新,破坏路由状态和组件生命周期。这时候该交由路由库处理。

比如 React Router v6 的 useNavigate()、Vue Router 的 router.push(),它们只更新 URL 和视图,不重载 DOM。硬切会导致 store 重置、未保存表单丢失、滚动位置归零。

  • React 中正确做法:const navigate = useNavigate(); navigate("/profile");
  • Vue 中:router.push({ path: "/profile", query: { tab: "settings" } })
  • 服务端渲染(SSR)场景下,首次加载仍需真实跳转,但后续交互必须走前端路由

跨域跳转、下载链接、打开新标签页这些情况另算——它们不走前端路由,该用原生方式就用原生方式。跳转逻辑看似简单,真正麻烦的是边界条件:协议是否匹配、history 是否要保留、当前是否在 iframe 里、有没有 CSP 限制 navigation。这些细节一漏,就卡在 QA 阶段反复修。

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

3040

2023.06.14

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

360

2023.08.31

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2853

2023.11.15

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1161

2024.09.24

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2278

2023.09.20

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4496

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1375

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1798

2023.08.03

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 228人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn