JavaScript BOM Cookie 的用法
JavaScript Cookie
Cookie是计算机上存储在小文本文件中的数据。当Web服务器将网页发送到浏览器时,连接将关闭,服务器将忘记用户的所有内容。发明Cookie是为了解决“如何记住用户信息”的问题:
当用户访问网页时,他/她的名字可以存储在cookie中。
下次用户访问该页面时,cookie会“记住”他/她的名字。
Cookie以键值对形式保存,如:
username = John Doe
当浏览器从服务器请求网页时,属于该页面的cookie将添加到请求中。这样,服务器获取必要的数据以“记住”有关用户的信息。
如果您的浏览器已关闭本地Cookie支持,则以下示例均无效。
使用JavaScript创建Cookie
JavaScript可以使用document.cookie属性创建,读取和删除cookie。使用JavaScript,可以像这样创建一个cookie:
document.cookie = "username=John Doe";
您还可以添加到期日期(以UTC时间为单位)。默认情况下,在浏览器关闭时删除cookie:
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";
使用path参数,您可以告诉浏览器cookie属于哪个路径。默认情况下,cookie属于当前页面。
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
使用JavaScript阅读Cookie
使用JavaScript,cookie可以像这样读取:
var x = document.cookie;
document.cookie将返回一个字符串中的所有cookie,如:cookie1 = value; cookie2 =值; cookie3 =值;
使用JavaScript更改Cookie
使用JavaScript,您可以像创建cookie一样更改cookie:
document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
旧cookie被覆盖。
使用JavaScript删除Cookie
删除cookie非常简单。删除cookie时,不必指定cookie值。只需将expires参数设置为传递日期:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
您应该定义cookie路径以确保删除正确的cookie。如果您未指定路径,某些浏览器将不允许您删除cookie。
Cookie字符串
document.cookie属性看起来像普通的文本字符串。但事实并非如此。即使你将一个完整的cookie字符串写入document.cookie,当你再次读出它时,你只能看到它的名称 - 值对。如果您设置了新cookie,则不会覆盖较旧的cookie。新的cookie被添加到document.cookie,所以如果你再次阅读document.cookie,你会得到类似的东西:cookie1 = value; cookie2 = value;
如果要查找一个指定cookie的值,则必须编写一个JavaScript函数来搜索cookie字符串中的cookie值。
JavaScript Cookie示例
在下面的示例中,我们将创建一个存储访客姓名的cookie。访问者第一次到达网页时,将要求他/她填写他/她的姓名。然后将名称存储在cookie中。下次访问者到达同一页面时,他/她将收到欢迎信息。在这个例子中,我们将创建3个JavaScript函数:
- 用于设置cookie值的函数
- 获取cookie值的函数
- 用于检查cookie值的函数
- 设置Cookie的功能
首先,我们创建一个函数将访问者的名称存储在cookie变量中:
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
示例说明:
上述函数的参数是cookie的名称(cname),cookie的值(cvalue)以及cookie到期之前的天数(exdays)。该函数通过将cookiename,cookie值和expires字符串相加来设置cookie。
获取Cookie的功能
然后,我们创建一个function返回指定cookie的值:
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
功能说明:
将cookiename作为参数(cname)。使用要搜索的文本(cname +“=”)创建变量(名称)。解码cookie字符串,处理带有特殊字符的cookie,例如'$'将分号上的document.cookie拆分为名为ca的数组(ca = decodingCookie.split(';'))。循环通过ca数组(i = 0; i < ca.length; i ++),并读出每个值c = ca [i])。如果找到cookie(c.indexOf(name)== 0),则返回cookie的值(c.substring(name.length,c.length))。如果找不到cookie,则返回“”。
检查Cookie的功能
最后,我们创建一个函数来检查是否设置了cookie。如果设置了cookie,它将显示问候语。如果未设置cookie,它将显示一个提示框,询问用户的名称,并通过调用setCookie函数将用户名cookie存储365天:
function checkCookie() {
var username = getCookie("username");
if (username != "") {
alert("Welcome again " + username);
} else {
username = prompt("Please enter your name:", "");
if (username != "" && username != null) {
setCookie("username", username, 365);
}
}
}
所有代码都在一起实现
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function checkCookie() {
var user = getCookie("username");
if (user != "") {
alert("Welcome again " + user);
} else {
user = prompt("Please enter your name:", "");
if (user != "" && user != null) {
setCookie("username", user, 365);
}
}
}
上面的示例checkCookie()在页面加载时运行该函数。
更详情的Cookie技术文章
JavaScript BOM Cookie 的用法的更多相关文章
- JavaScript中Cookie的用法
Javascript中Cookie主要存储于客户端的计算机中,用于存放已访问的站点信息,Cookie最大约为4k.以下实例主要用于页面在刷新时保存数据,具体的用法如下所示: <html> ...
- Javascript 原生Cookie使用用法
var oCookie = { setCookie: function (name, value, expireDays, path, domain) { var expireDays = expir ...
- JavaScript 操作 Cookie
转自作者:聂微东出处:http://www.cnblogs.com/Darren_code/ 什么是 Cookie “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器 ...
- jquery.cookie.js 用法
jquery.cookie.js 用法 一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 j ...
- JavaScript之Cookie讲解
什么是 Cookie “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie ...
- Cookie介绍及JavaScript操作Cookie方法详解
本文主要为大家简单介绍了以下Cookie的用途.运行机制,以及JavaScript操作Cookie的各种方法,总结的比较全面,希望能给大家带来帮助. 什么是 Cookie “cookie 是存储于访问 ...
- JavaScript操作Cookie
在Web开发中,我们经常使用Cookie保存一些不是非常敏高的数据.比如“下次自动登录”,“广告显示”等功能.定义是:某些网站为了辨别用户身份而存储在用户本地终端(主要是浏览器)上的数据.定义域RFC ...
- JavaScript BOM对象介绍
bom:即broswer object model(浏览器对象模型),由五个对象组成: Window:对象表示浏览器中打开的窗口 最顶层对象. Navigator :浏览器对 ...
- javascript confirm()函数的用法
javascript confirm()函数的用法 confirm():确认消息对话框.用于允许用户做选择的动作.弹出的对话框中包含一确定按钮和一取消按钮. confirm(str) 参数说明: st ...
随机推荐
- SAP MM 采购信息记录中价格单位转换因子的修改
SAP MM 采购信息记录中价格单位转换因子的修改 如下采购信息记录, Order unit 跟 base UoM 一致,都是 PC. 采购价格是8849.56 CNY / 10000W, 由于业务人 ...
- DYNAMICS 365发布所有时候报错:appmodule With Id = a7a513b1-c87d-e911-a83a-000d3a375321 Does Not Exist
我是微软Dynamcis 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 【Android】Context的使用
Android开发经常需要使用Context来启动Activity,或者打开SharedPreferences,或者构建一个Dialog.最近老是用到getContext(),getApplicati ...
- Python使用DB-API操作MySQL数据库
Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库.与任何底层数据库的交互都可以使用DB-API,因为DB-API在代码与驱动程序之间提供了一个抽象层,可以根据需要替 ...
- TypeScript 学习笔记(一)
TypeScript: 1.是 JavaScript 的一个超集,支持 ES6 标准 2.由微软开发的自由和开源的编程语言 3.设计目标是开发大型应用,它可编译成纯 JavaScript,编译出来的 ...
- 最短时间(几秒内)利用C#往SQLserver数据库一次性插入10万条数据
用途说明: 公司要求做一个数据导入程序,要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储.于是在网上进行查找,发现了一个比较好的解决方案,就是采用SqlBul ...
- Shell命令-用户用户组管理之id、su
文件及内容处理 - id.su 1. id:查看用户的uid,gid及归属的用户组 id命令的功能说明 id 命令用于显示用户的 ID,以及所属群组的 ID.id 会显示用户以及所属群组的实际与有效I ...
- Selenium WebDriver 中鼠标事件(全)
Selenium WebDriver 中鼠标事件(全) 鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driv ...
- LG1505 [国家集训队]旅游 树链剖分
问题描述 LG1505 题解 边化点权. 超级多操作的树剖板子... 以后就拿这个当树剖板子复习吧... \(\mathrm{Code}\) #include<bits/stdc++.h> ...
- layer icon样式及 一些弹框使用方法
一.layer的icon样式 以上样式测试代码: layer.confirm('icon测试', {icon: 1, title:'提示'}, function(index){ //do someth ...