Javascript操作cookie的类
作者:xling 来源:xling的BLOG 发布时间:2007-08-23 09:36:00
标签:Javascript,cookie
看了OReilly.JavaScript.The.Definitive.Guide.5th.Edition.Aug.2006里的cookie的操作类,但是不符合需求。
看了网上广为转载的cookie操作类,但是我相信那些是有问题的(主要集中在:expires 、domain、path和secure上)。
我不保证我写的就是最好的,但是我保证绝对没有如上所述的问题。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<input type="button" name="button" id="button" value="Remove Cookies" onclick="window.cookie.remove( )" />
<script language="javascript" type="text/javascript">
/*-------------------------------------------
Author :xlingFairy
Blog:http://xling.blueidea.com
2007/08/21
Custom Object Cookie.
Note: It not equal to document.cookie
-------------------------------------------*/
function Cookie() {
var self = this;
var trim = function(str){
return str.replace(/(^\s*)|(\s*$)/g, "");
}
/*-------------------
Private method init()
When create a instance,all exists cookie will add as public property.
-------------------*/
var init = function(){
var allcookies = document.cookie;
if (allcookies == "") return;
var cookies = allcookies.split(’;’);
for(var i=0; i < cookies.length; i++) // Break each pair into an array
cookies[i] = cookies[i].split(’=’);
for(var i = 0; i < cookies.length; i++) {
self[trim(cookies[i][0])] = decodeURIComponent(cookies[i][1]);
}
}
init();
/*--------------------
Public method save()
--------------------*/
this.save = function(daysToLive, path, domain, secure){
var dt = (new Date()).getTime() + daysToLive * 24 * 60 * 60 * 1000;
for(var prop in this) {
if (typeof this[prop] == ’function’)
continue;
var cookie = "";
cookie = prop + ’=’ + encodeURIComponent(this[prop]);
if (daysToLive || daysToLive == 0) cookie += ";expires=" + new Date(dt).toUTCString();
if (path) cookie += ";path=" + path;
if (domain) cookie += "; domain=" + domain;
if (secure) cookie += ";secure";
document.cookie = cookie;
}
}
/*--------------------
Public method remove()
--------------------*/
this.remove = function(path, domain, secure){
self.save(0, path, domain, secure);
/*-----------------------
Must save(0) first then delete this object’s property
If delete first,save(0) will not save anlything.
-----------------------*/
for(var prop in this) {
if (typeof this[prop] != ’function’)
delete this[prop];
}
}
}
var cookie = new Cookie("vistordata");
if (!cookie.uId) {
cookie.uId = prompt("Please input you uId:","");
cookie.save(10);
}
document.write("Your userID is:" + cookie.uId);
var copacast_idMap_img = document.createElement("IMG");
copacast_idMap_img.style.display = "none";
document.body.appendChild(copacast_idMap_img);
copacast_idMap_img.src = " http://www.copacast.net/track/setIDmapping.cgi?uid=" + cookie.uId + "&cltId=xxxx";
</script>
</body>
</html>


猜你喜欢
- 本文实例为大家分享了js实现简单放大镜效果的具体代码,供大家参考,具体内容如下效果效果,鼠标在原图片移动,黄色小盒子跟随鼠标移动,黄色小盒子
- 一,什么是mycat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL
- 1.在列属性中加入事件 { &
- 已经pip安装好第三方库了,但是在pycharm中import还是标红,像下图:我记得上次重装系统,出现这种情况的时候,我重启一下pycha
- 在我们制作网页的时候会经常碰到一些需求,如果不知道方法,说不定会困扰我们半天。其实实现它们都很简单,下面我们就一起来看看这些常用的网页编辑方
- 本文实例讲述了Python实现快速多线程ping的方法。分享给大家供大家参考。具体如下:#!/usr/bin/python#_*_codin
- 本文实例讲述了Python实现模拟登录及表单提交的方法。分享给大家供大家参考。具体实现方法如下:# -*- coding: utf-8 -*
- 流读写很多时候,数据读写不一定是文件,也可以在内存中读写。1、StringIO:在内存中读写str。要把str写入StringIO,我们需要
- 安装anaconda登录anaconda的官网下载,anaconda是一个集成的工具软件不需要我们再次下载。anaconda官网点击下载跳转
- 随机生成10位数密码,字母和数字组合import string>>> import random>>>
- 安装源pip install django2.2pip install mysqlclient1.4.6使用pyharm 创建django
- 反射是在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象
- 一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackbal
- 在讲样式表开发管理之前,我想插播一个小知识。前几天看web标准设计组里,看到龍佑康同学问到关于 block 和 inline 的区别。记得以
- 周期置换密码参考教材:《现代密码学教程》P47 3.1.2加密解密过程周期置换密码是将明文p串按固定长度m分组.然后对每组中的子串按1,2&
- Mac安装软件时提示已损坏的解决方法从网上下载的SecureCRT、Principle等设计软件,以及输入法等常用软件,安装时可能会提示&a
- 基本配置(萌新看,大佬请跳到下一节)1、创建项目点击Create New Project创建新的项目,点击Open打开已有的项目。先选择左侧
- 复制代码 代码如下: public partial class CMS_DBDataContext { partial void OnCre
- 本文实例讲述了php计算给定日期所在周的开始日期和结束日期。分享给大家供大家参考,具体如下:<?php/** * 取得给定日期所在周的
- split函数主要应用场景是Python对字符串的处理中(数据分析,数据处理),以及计算机二级考试的常考基础知识点。一、split函数的官方