0

0

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

聖光之護

聖光之護

发布时间:2026-02-20 18:41:01

|

323人浏览过

|

来源于php中文网

原创

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

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

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

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

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

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

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

    ✅ 正确实现方式

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

    狸谱App
    狸谱App

    AI壁纸漫画梗图,年轻人的抽象创作社区

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

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

    // 页面加载完成后获取存储的值
    $(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 重置问题,还能构建出状态连贯、用户体验一致的多页交互流程。

  • 热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

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

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

    442

    2023.08.07

    json是什么
    json是什么

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

    544

    2023.08.23

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

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

    322

    2023.10.13

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

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

    81

    2025.09.10

    chrome什么意思
    chrome什么意思

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

    967

    2023.08.11

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

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

    796

    2023.11.06

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

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

    1581

    2023.08.21

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

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

    392

    2024.03.05

    pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
    pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

    本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

    796

    2026.02.13

    热门下载

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

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    进程与SOCKET
    进程与SOCKET

    共6课时 | 0.4万人学习

    极致CMS零基础建站教学视频
    极致CMS零基础建站教学视频

    共62课时 | 5.8万人学习

    布尔教育燕十八mysql优化视频教程
    布尔教育燕十八mysql优化视频教程

    共32课时 | 9.3万人学习

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

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号