如何在页面跳转后持久化存储 DOM 元素的属性值

阿辰吖_1210

阿辰吖_1210

2026-02-20

343人浏览

原创

如何在页面跳转后持久化存储 DOM 元素的属性值

本文讲解如何利用 sessionStorage 在用户点击下拉菜单项并跳转到新页面后,依然保留所选 元素的 rel 值,解决因页面刷新导致 JavaScript 变量重置的问题。

本文讲解如何利用 sessionstorage 在用户点击下拉菜单项并跳转到新页面后,依然保留所选

  • 元素的 rel 值,解决因页面刷新导致 javascript 变量重置的问题。

    在 Web 开发中,常遇到这样的场景:用户在当前页(如 index.html)通过点击

  • 触发逻辑,将某个标识(如 rel="3")存入变量,随后跳转至新页面(如 index2.html)。此时若直接使用普通 JS 变量(如 let val = 1),该值仅存在于当前页面的执行上下文中——一旦页面跳转或刷新,变量即被销毁,新页面中无法访问原值。

    根本原因在于:JavaScript 变量不具备跨页面生命周期。要实现“一次设置、多页可用”,必须借助浏览器提供的客户端存储机制。sessionStorage 是最契合本场景的方案:它以键值对形式保存数据,作用域限定于当前浏览器标签页,且在页面跳转、刷新甚至前进/后退时均保持有效,关闭标签页后自动清除,兼顾安全性与实用性。

    ✅ 正确实现方式

    首先,在初始页面(index.html)中,将点击事件中的 rel 值写入 sessionStorage:

    // 初始化(可选,确保有默认值)
    sessionStorage.setItem('selectedCategory', '1');
    
    // 绑定点击事件
    $(".category").on("click", function(e) {
      const relValue = $(this).attr("rel");
      sessionStorage.setItem("selectedCategory", relValue);
      // 注意:此处不阻止默认行为,允许 href 正常跳转
    });

    然后,在目标页面(index2.html)中读取该值:

    Yarnit | Digital Stories
    Yarnit | Digital Stories

    一款结合AI与数字故事创作能力的内容制作平台,可帮助用户快速策划和制作图文结合的数字故事及视觉传播内容。

    下载
    // 页面加载完成后获取存储的值
    $(document).ready(function() {
      const savedVal = sessionStorage.getItem("selectedCategory");
      if (savedVal !== null) {
        console.log("上一页选中的分类 ID:", savedVal); // 如 "3"
        // 可据此动态渲染内容、高亮导航、发起 API 请求等
      } else {
        console.log("未检测到选中分类,使用默认值");
      }
    });

    ⚠️ 注意事项

    • 键名一致性:确保 setItem() 和 getItem() 使用完全相同的键名(如 "selectedCategory"),区分大小写;
    • 数据类型:sessionStorage 只支持字符串值。若需存储对象或数组,请先用 JSON.stringify() 序列化,读取时用 JSON.parse() 还原;
    • 作用域限制:sessionStorage 仅在同源(协议 + 域名 + 端口)且同一标签页内共享。跨标签页或跨域不可见;
    • 兼容性:现代浏览器(Chrome 5+、Firefox 2+、Safari 4+、Edge、IE10+)均支持,无需 polyfill;
    • 替代方案对比:
      • localStorage:持久化存储(关闭浏览器也不清除),适合需长期保留的数据,但可能带来隐私或过期风险;
      • URL 参数(如 ?category=3):更透明、可书签化,但需手动解析且暴露在地址栏中;
      • postMessage:适用于 iframe 或弹窗通信,不适用于常规页面跳转。

    ✅ 最佳实践建议

    为提升代码健壮性,推荐封装读写操作:

    const CategoryStorage = {
      set(id) {
        if (typeof id === "string" || typeof id === "number") {
          sessionStorage.setItem("selectedCategory", String(id));
        }
      },
      get() {
        return sessionStorage.getItem("selectedCategory") || "1";
      },
      clear() {
        sessionStorage.removeItem("selectedCategory");
      }
    };
    
    // 使用示例
    $(".category").on("click", function() {
      CategoryStorage.set($(this).attr("rel"));
    });

    通过合理使用 sessionStorage,你不仅能解决 val 重置问题,还能构建出状态连贯、用户体验一致的多页交互流程。

  • 相关专题

    更多
    json数据格式
    json数据格式

    JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

    2023.08.07

    2235

    5

    json是什么
    json是什么

    JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.23

    3602

    1

    jquery怎么操作json
    jquery怎么操作json

    操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

    2023.10.13

    1196

    3

    go语言处理json数据方法
    go语言处理json数据方法

    本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

    2025.09.10

    4159

    7

    chrome什么意思
    chrome什么意思

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

    2023.08.11

    2886

    5

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

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

    2023.11.06

    5859

    7

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

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

    2026.03.24

    4167

    22

    edge是什么浏览器
    edge是什么浏览器

    Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.21

    3082

    5

    IE浏览器自动跳转EDGE如何恢复
    IE浏览器自动跳转EDGE如何恢复

    ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    2024.03.05

    2914

    4

    热门下载

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

    精品课程

    更多
    热门推荐
    /
    最新课程
    phpStudy极速入门视频教程
    phpStudy极速入门视频教程

    共6课时 | 54.7万人学习

    独孤九贱(4)_PHP视频教程
    独孤九贱(4)_PHP视频教程

    共89课时 | 134.1万人学习