JavaScript静态页面传值技巧解析
需积分: 9 37 浏览量
更新于2024-09-20
收藏 24KB DOC 举报
"javascript静态页面传值的三种方法"
在网页开发中,JavaScript 是一种常用的脚本语言,用于处理客户端的数据和交互。当涉及到静态页面之间的数据传递时,有几种常见的方法。以下是标题和描述中提到的JavaScript静态页面传值的三种方法:
一、URL传值
这种方法是通过在URL中添加查询参数来传递值。例如,在一个HTML表单中,用户输入数据后,点击按钮,JavaScript函数会将这些值拼接到URL后面,并重定向到新的页面读取这些值。以下是一个简单的例子:
```html
Post.htm
<input type="text" name="username">
<input type="text" name="sex">
<input type="button" value="Post" onclick="Post()">
<script>
function Post() {
var url = "Read.htm?username=" + escape(document.all.username.value);
url += "&sex=" + escape(document.all.sex.value);
location.href = url;
}
</script>
```
在这个例子中,`Post()` 函数将获取到的用户名和性别值用 `escape()` 函数编码后添加到URL中,然后重定向到 `Read.htm`。
```html
Read.htm
<script>
var url = location.search;
var Request = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1); // 去掉问号
var strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
Request[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
alert(Request["username"]);
alert(Request["sex"]);
</script>
```
在 `Read.htm` 页面,JavaScript 会解析URL中的查询字符串,通过 `split()` 函数提取键值对,并用 `unescape()` 解码,然后存储在 `Request` 对象中,以便于访问。
二、Cookie传值
另一种方式是通过Cookie传递数据。Cookie是在用户浏览器中存储的小型文本文件,可以用来在多个页面间保存信息。创建一个Cookie,然后在目标页面读取它。创建Cookie的代码可能如下:
```javascript
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
var cookieArr = document.cookie.split(";");
for (var i = 0; i < cookieArr.length; i++) {
var cookiePair = cookieArr[i].split("=");
if (name === cookiePair[0].trim()) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
```
设置完Cookie后,可以在新页面使用 `getCookie()` 函数获取值。
三、localStorage或sessionStorage
现代浏览器支持HTML5的localStorage和sessionStorage,它们提供了在浏览器中存储键值对的能力。与Cookie相比,它们更安全,且存储量更大。例如,存储数据:
```javascript
localStorage.setItem("username", document.all.username.value);
localStorage.setItem("sex", document.all.sex.value);
```
然后在另一个页面读取:
```javascript
var username = localStorage.getItem("username");
var sex = localStorage.getItem("sex");
```
localStorage的数据不会随浏览器关闭而清除,而sessionStorage的数据则会在浏览器会话结束时删除。
这三种方法各有优缺点,URL传值简单但不适用于大量数据,Cookie适合跨域传递但大小有限制,而localStorage和sessionStorage则提供更大的存储空间但仅限于同源策略下的页面。选择哪种方法取决于具体需求和应用场景。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-19 上传
2007-05-23 上传
2010-04-09 上传
2015-09-19 上传
2011-02-26 上传
2017-11-29 上传
sea2323111
- 粉丝: 1
- 资源: 5
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率