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

html中跳转链接时如何让一处地方保持不变

胖芳吖_5749

胖芳吖_5749

发布时间:2026-02-13 13:52:01

|

254人浏览过

|

来源于php中文网

原创

location.hash 是最轻量且兼容性最好的锚点跳转方案,仅改变 URL 的 # 后部分,浏览器自动滚动至对应 id 元素,不触发页面重载;需确保目标元素有匹配 id,避免使用 name 属性。

html中跳转链接时如何让一处地方保持不变

用 location.hash 控制页面跳转时的锚点位置

页面跳转时想让某块区域(比如顶部导航、侧边栏)不刷新、不重载,本质不是“保持不变”,而是避免整页 reload —— 所以得用前端路由或 hash 跳转这类不触发页面卸载的方式。location.hash 是最轻量、兼容性最好、且无需框架支持的方案。

它只改变 URL 的 # 后部分,浏览器会自动滚动到对应 id 元素,且不重新请求 HTML。适合单页内导航、文档锚点、Tab 切换等场景。

  • 必须确保目标元素有匹配的 id,例如跳转链接是 #section2,那页面里就得有 <div id="section2"> <li>不要用 <code>name 属性替代 id,现代浏览器对 name 锚点支持已弱化,尤其在严格模式下可能失效
  • hash 改变会触发 hashchange 事件,可监听做联动处理,比如高亮当前 Tab
  • 用 history.pushState() 替代跳转,避免 DOM 重绘

    如果需求不只是滚动,而是要动态替换部分内容(比如只更新 <main></main> 区域),location.hash 就不够用了。这时得用 history.pushState() 配合 JS 手动更新 DOM。

    它不会导致页面刷新,URL 变化后用户可正常前进/后退,且状态可携带数据(如 { section: "user" }),比 hash 更语义化。

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

    使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审
    使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审

    使用经过文档化的设计技能,从真实的品牌或项目背景中生成HTML原生原型、幻灯片、动态演示、可视化图表和评审流程。

    下载
    • 调用后必须手动更新视图,pushState 自身不做任何 DOM 操作
    • 需监听 popstate 事件来响应浏览器后退/前进,否则历史栈变化但页面不动
    • 服务端无需特殊配置,但直接访问带新路径的 URL 时,得确保返回的是完整 HTML(否则 404 或白屏)
    • 路径可以是相对路径,但不能跨域;第二个参数(title)目前多数浏览器忽略,传空字符串即可

    iframe 嵌套:真·局部不刷新,但代价明显

    如果必须让一块区域彻底与主页面解耦(比如嵌入第三方工具、隔离 CSS/JS 作用域),<iframe></iframe> 是唯一能保证“完全不变”的方式 —— 它的加载、渲染、脚本执行都独立于父页面。

    但这是重武器,日常需求里容易误用。

    • 父页面无法直接读写 iframe 内 DOM,跨域时更受限,通信得靠 postMessage
    • SEO 不友好,搜索引擎通常不索引 iframe 内容
    • 移动端手势(如滚动嵌套)、焦点管理、打印样式都更容易出问题
    • 每个 iframe 是独立的渲染进程(Chrome 等),内存和性能开销比纯 JS 方案高得多

    SPA 框架里的 router-view 或 Outlet 是怎么工作的

    Vue Router 的 <router-view></router-view>、React Router 的 <outlet></outlet>,底层其实还是基于 history.pushState() + 动态组件挂载。它们把“哪块该更新”这个逻辑封装好了,但原理没变:监听路由变化 → 匹配组件 → 替换指定容器内容。

    关键点在于:这些容器本身(比如 <router-view></router-view> 标签所在位置)在首次渲染后就一直存在,只是内部子组件被销毁/重建。

    • 组件级生命周期(如 mounted、useEffect)会在每次切换时重新触发,不是“保持状态”
    • 如需保留状态(比如表单输入),得手动用 keep-alive(Vue)或 useMemo+外部状态管理(React)
    • 路由懒加载(defineAsyncComponent / lazy)不影响容器稳定性,只影响内部组件加载时机

    真正难的不是“怎么让一处不变”,而是想清楚“不变”到底指什么:是不滚动?不重绘?不执行 JS?还是不丢失用户输入?不同目标对应完全不同技术选型,混用反而会让滚动错位、状态丢失、history 栈混乱 —— 这些问题往往在测试边缘路径时才暴露。

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

DeepSeek

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

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

立刻MV
立刻MV Hot

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

WorkBuddy

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

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

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

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2906

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

5919

2023.11.06

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

4207

2026.03.24

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

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

1878

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

3004

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

6284

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

6269

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

7834

2024.03.22

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

0

2026.11.05

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习

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

共1课时 | 235人学习

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

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