新闻中心

HTML 文件间数据共享教程:通过 localStorage 传递表单输入值

2025-10-10
浏览次数:
返回列表

HTML 文件间数据共享教程:通过 localStorage 传递表单输入值

本教程详细讲解如何在不同 HTML 文件之间安全有效地共享表单输入数据。通过利用浏览器提供的 localStorage API,我们可以将源页面收集的用户输入数据持久化存储在客户端,然后在目标页面中检索并使用这些数据,从而实现跨页面的信息传递,无需依赖服务器端操作。

引言:理解跨页面数据传输的需求

在 web 开发中,经常会遇到这样的场景:用户在一个 html 页面中输入了信息(例如填写表单),然后需要将这些信息传递到另一个 html 页面进行展示或进一步处理。原问题中提到的“如何在另一个 html 文件中使用一个 html 文件的类和 id”实际上是对这种数据传输需求的误解。html 元素的类和 id 是其内部 dom 元素的标识符,它们本身不能直接跨文件“使用”。真正的需求是实现不同页面间的数据共享。

本文将介绍一种常用且高效的客户端数据存储机制——localStorage,来解决这一问题。通过 localStorage,我们可以在浏览器中持久化存储数据,使其在用户关闭浏览器后依然存在,并且可以在同一域下的不同页面间共享。

使用 localStorage 进行跨页面数据传输的原理

localStorage 是 Web Storage API 的一部分,它允许 Web 应用程序在用户的浏览器中存储键值对。这些数据以字符串形式存储,并且在浏览器会话结束后仍然保留,除非用户手动清除或通过代码移除。其主要特点包括:

  • 持久性: 数据在浏览器关闭后依然存在。
  • 同源策略: 只有在同一域下的页面才能访问存储的数据。
  • 存储容量: 通常为 5MB 或更大。
  • API 简单: 提供 setItem()、getItem()、removeItem() 和 clear() 等方法。

我们将通过两个 HTML 文件来演示这一过程:一个用于收集表单数据(源页面),另一个用于展示这些数据(目标页面)。

步骤一:在源页面中收集并存储数据

首先,我们需要创建一个包含表单的 HTML 页面,当用户提交表单时,我们捕获输入值,并将其存储到 localStorage 中。

HTML 结构 (index.html)

青泥AI 青泥AI

青泥学术AI写作辅助平台

青泥AI 360 查看详情 青泥AI
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>学生信息录入</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        form { background-color: #f4f4f4; padding: 20px; border-radius: 8px; max-width: 400px; margin: auto; }
        label { display: block; margin-bottom: 5px; font-weight: bold; }
        input[type="text"] { width: calc(100% - 22px); padding: 10px; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 4px; }
        button { background-color: #4CAF50; color: white; padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; }
        button:hover { background-color: #45a049; }
    </style>
</head>
<body>
    <form id="studentForm">
        <h2>学生信息录入</h2>
        <label for="studentName">学生姓名:</label>
        <input type="text" id="studentName" placeholder="请输入学生姓名" required>

        <label for="studentId">学号:</label>
        <input type="text" id="studentId" placeholder="请输入学号" required>

        <label for="studentClass">班级:</label>
        <input type="text" id="studentClass" placeholder="请输入班级">

        <button type="submit">提交信息</button>
    </form>

    <script>
        // 获取表单元素
        const form = document.getElementById("studentForm");

        // 监听表单提交事件
        form.addEventListener("submit", function(event) {
            // 阻止表单默认提交行为,避免页面刷新
            event.preventDefault();

            // 获取输入框的值
            const studentName = document.getElementById('studentName').value;
            const studentId = document.getElementById('studentId').value;
            const studentClass = document.getElementById('studentClass').value;

            // 将获取到的数据封装成一个 J*aScript 对象
            const studentData = {
                name: studentName,
                id: studentId,
                class: studentClass
            };

            // 将 J*aScript 对象转换为 JSON 字符串并存储到 localStorage
            // 注意:localStorage 只能存储字符串
            localStorage.setItem("currentStudent", JSON.stringify(studentData));

            // 提交成功后,可以给用户一个反馈,并跳转到目标页面
            alert("学生信息已成功保存!");
            window.location.href = "display.html"; // 跳转到展示页面
        });
    </script>
</body>
</html>

代码解析:

  1. event.preventDefault(): 这是关键一步,它阻止了表单的默认提交行为(通常会导致页面刷新或跳转),从而允许我们通过 J*aScript 处理数据。
  2. document.getElementById().value: 通过元素的 ID 获取对应的输入框,并取出其当前的值。
  3. 创建 J*aScript 对象: 将所有相关数据组织成一个对象,这有助于保持数据结构清晰。
  4. JSON.stringify(studentData): localStorage 只能存储字符串。因此,我们需要使用 JSON.stringify() 方法将 J*aScript 对象转换为 JSON 格式的字符串。
  5. localStorage.setItem("currentStudent", ...): 将转换后的字符串存储到 localStorage 中。"currentStudent" 是我们为这组数据定义的键名,后续将通过这个键名来检索数据。
  6. window.location.href = "display.html";: 在数据存储成功后,我们通常会引导用户到展示数据的页面。

步骤二:在目标页面中检索并使用数据

接下来,我们创建另一个 HTML 页面 (display.html),用于从 localStorage 中读取之前存储的数据,并将其展示出来。

HTML 结构 (display.html)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>学生信息详情</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; }
        .container { background-color: #e6f7ff; padding: 20px; border-radius: 8px; max-width: 600px; margin: auto; border: 1px solid #91d5ff; }

以上就是HTML 文件间数据共享教程:通过 localStorage 传递表单输入值的详细内容,更多请关注其它相关文章!


# 这一  # 宜良谷歌seo新手教学  # seo网站制作步骤  # 海淀视频网站建设  # 南昌放心的网站推广平台  # 口碑营销推广文案  # 旅游投资公司网站建设  # 西安seo矩阵重要吗  # 小红书seo与sem  # 石城seo优化合作  # 温州网站推广哪家有名  # 通常会  # 连接到  # 转换为  # 我们可以  # 键值  # javascript  # 请输入  # 数据结构  # 置顶  # 表单  # red  # 键值对  # 表单提交  # 持久化存储  # win  # ai  # 浏览器  # json  # js  # html  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Golang如何使用new_Go new分配内存机制讲解  yandex入口引擎手机版 yandex安卓版下载入口  解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南  美团外卖商家服务中心入口 美团商家版官网入口  支付宝如何设置安全保护_支付宝安全设置的全面教程  taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】  晋江读书网页版在线登录 晋江读书电脑版官网  蛙漫画网页版全站入口 蛙漫热门作品免费浏览  J*aScript生成器_j*ascript异步迭代  MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  使用Pandas转换并合并DataFrame:多列映射至统一结构  微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法  小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】  腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程  邮政快递单号查询入口 邮政快递物流信息在线查询入口  C++ string find函数返回值npos详解_C++字符串查找失败的判断条件  为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法  响应式容器内容自动缩放与宽高比维持教程  css滚动动画效果怎么实现_使用Animate.css滚动触发动画类  汽水音乐网页版使用入口_汽水音乐电脑版播放指南  在命令行怎么运行html项目_命令行运行html项目方法【教程】  蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达  Python大型XML文件高效流式解析教程  163邮箱官方主页登录 直达网易邮箱登录核心页面  特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相  excel怎么制作工资条 excel快速生成工资条的方法  Win11网速慢怎么解决 Win11网络设置优化解除限速  C++如何实现线程池_C++11手动实现一个简单的固定大小线程池  微博网页版直接访问 微博网页版账号管理快速入口  CSS实现侧边栏导航项全宽圆角悬停背景效果  俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问  Win11怎么查看电脑配置_Win11硬件配置检测工具使用  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  韩小圈电脑版在线入口_网页版免费登录地址  神庙逃亡小游戏在线玩 神庙逃亡小游戏入口  向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程  2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示  在Qt QML中通过Python字典动态更新TextEdit内容的教程  WordPress插件开发:正确注册卸载钩子与避免常见陷阱  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  必由学官方平台入口 必由学在线课堂登录地址  Python字典中优雅地迭代剩余元素的方法  腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧 

搜索