我想通过js读取COOKIE记录,有2个文件
1-------- index.html
2-------- playHistory.jsindex.html 源码<script src="playHistory.js"></script><script>PlayHistoryObj.addPlayHistory('{playpage:name}',location.href)</script><div id="playhistory">暂无播放历史列表</div><script>PlayHistoryObj.viewPlayHistory('playhistory')</script>
function PlayHistoryClass(){
var cookieStr,nameArray,urlArray,allVideoArray;
this.getPlayArray=function (){
cookieStr = document.cookie;
//alert(cookieStr)
var start = cookieStr.indexOf("max_cms2_v=") + "max_cms2_v=".length,end = cookieStr.indexOf("_$_|",start),allCookieStr= unescape(cookieStr.substring(start,end))
if(end==-1){allCookieStr="";return;}
allVideoArray = allCookieStr.split("_$_");
nameArray = new Array(),urlArray = new Array();
for(var i = 0; i < allVideoArray.length; i++){
var singleVideoArray = allVideoArray[i].split("^");
nameArray[i] = singleVideoArray[0];urlArray[i] = singleVideoArray[1];
}
}
this.viewPlayHistory=function (div){
var tag = $(div),n = 10
if(navigator.cookieEnabled){
var innerStr = "";
for(var i =nameArray.length - 1; i >= 0; i--){
var textCount = nameArray[i].replace(/[^\x00-\xff]/g,"cc").length;
if(textCount <= n*2){
texts = nameArray[i];
}else{
texts = nameArray[i].substr(0,n)+"...";
}
innerStr += "<a href=\"" + urlArray[i] + "\"" + " title=\"" + nameArray[i] + "\">" + texts + "</a><br />"
}
if (innerStr.length>0){set(tag,innerStr)}
}else{
set(tag,"您浏览器关闭了cookie功能,不能为您自动保存最近浏览过的网页。")
}
}
this.addPlayHistory=function (name,url){
var count = 10; //播放历史列表调用条数
var code_name = escape(name) + "^",code_url = escape(url) + "_$_",expireTime = new Date(new Date().setDate(new Date().getDate() + 30)),timeAndPathStr = "|; expires=" + expireTime.toGMTString() + "; path=/";
if(cookieStr.indexOf("max_cms2_v=") != -1 || cookieStr.indexOf("_$_|") != -1){
var newCookieStr = "";
if(allVideoArray.length < count){
for(i in allVideoArray){
if(nameArray[i] == name) continue;
newCookieStr += escape(nameArray[i]) + "^" + escape(urlArray[i]) + "_$_" ;
}
}else{
for(var i = 1; i < count; i++){
if(nameArray[i] == name) continue;
newCookieStr += escape(nameArray[i]) + "^" + escape(urlArray[i]) + "_$_" ;
}
}
document.cookie = "max_cms2_v=" + newCookieStr + code_name + code_url + timeAndPathStr;
}else{
document.cookie = "max_cms2_v="+ code_name + code_url + timeAndPathStr;
}
}
}
var PlayHistoryObj=new PlayHistoryClass()
PlayHistoryObj.getPlayArray()
1-------- index.html
2-------- playHistory.jsindex.html 源码<script src="playHistory.js"></script><script>PlayHistoryObj.addPlayHistory('{playpage:name}',location.href)</script><div id="playhistory">暂无播放历史列表</div><script>PlayHistoryObj.viewPlayHistory('playhistory')</script>
function PlayHistoryClass(){
var cookieStr,nameArray,urlArray,allVideoArray;
this.getPlayArray=function (){
cookieStr = document.cookie;
//alert(cookieStr)
var start = cookieStr.indexOf("max_cms2_v=") + "max_cms2_v=".length,end = cookieStr.indexOf("_$_|",start),allCookieStr= unescape(cookieStr.substring(start,end))
if(end==-1){allCookieStr="";return;}
allVideoArray = allCookieStr.split("_$_");
nameArray = new Array(),urlArray = new Array();
for(var i = 0; i < allVideoArray.length; i++){
var singleVideoArray = allVideoArray[i].split("^");
nameArray[i] = singleVideoArray[0];urlArray[i] = singleVideoArray[1];
}
}
this.viewPlayHistory=function (div){
var tag = $(div),n = 10
if(navigator.cookieEnabled){
var innerStr = "";
for(var i =nameArray.length - 1; i >= 0; i--){
var textCount = nameArray[i].replace(/[^\x00-\xff]/g,"cc").length;
if(textCount <= n*2){
texts = nameArray[i];
}else{
texts = nameArray[i].substr(0,n)+"...";
}
innerStr += "<a href=\"" + urlArray[i] + "\"" + " title=\"" + nameArray[i] + "\">" + texts + "</a><br />"
}
if (innerStr.length>0){set(tag,innerStr)}
}else{
set(tag,"您浏览器关闭了cookie功能,不能为您自动保存最近浏览过的网页。")
}
}
this.addPlayHistory=function (name,url){
var count = 10; //播放历史列表调用条数
var code_name = escape(name) + "^",code_url = escape(url) + "_$_",expireTime = new Date(new Date().setDate(new Date().getDate() + 30)),timeAndPathStr = "|; expires=" + expireTime.toGMTString() + "; path=/";
if(cookieStr.indexOf("max_cms2_v=") != -1 || cookieStr.indexOf("_$_|") != -1){
var newCookieStr = "";
if(allVideoArray.length < count){
for(i in allVideoArray){
if(nameArray[i] == name) continue;
newCookieStr += escape(nameArray[i]) + "^" + escape(urlArray[i]) + "_$_" ;
}
}else{
for(var i = 1; i < count; i++){
if(nameArray[i] == name) continue;
newCookieStr += escape(nameArray[i]) + "^" + escape(urlArray[i]) + "_$_" ;
}
}
document.cookie = "max_cms2_v=" + newCookieStr + code_name + code_url + timeAndPathStr;
}else{
document.cookie = "max_cms2_v="+ code_name + code_url + timeAndPathStr;
}
}
}
var PlayHistoryObj=new PlayHistoryClass()
PlayHistoryObj.getPlayArray()
function $(id){
return document.getElementById(id);
}
function set(obj, str){
obj.innerHTML = str;
}
<div id='ddd' style="width:200px;padding:20px;border:1px #888 solid;"></div>
<script language="javascript">
//输出记录
function ShowLastView(key, splitFlag, maxNum, subSplit, id) {
var _div = document.getElementById(id);
var _v = cookieOperate.searchCookie(key);
if(_v) {
var _Temp="";
var _arr = _v.split(splitFlag);
var _subArr;
var _len = _arr.length;
for(var i = 0; i < _len; i++) {
_subArr = _arr[i].split(subSplit);
_Temp += "<a href='"+ _subArr[1] +"'>标题:"+ _subArr[0] +"<br/>时间:"+ _subArr[2] +"</a><br />";
}
_div.innerHTML = _Temp;
}
}
ShowLastView("lastview", "$", 10, "^", "ddd");
//记录访问的页面
function StoreLastView(key, flag, splitFlag, maxNum, subSplit, seconds) {
var _v = document.title + subSplit + location.href + subSplit + new Date().toLocaleString();
cookieOperate.writeCookie({k: key, v: _v, f: flag, s: splitFlag, n: maxNum, t: seconds});
}
StoreLastView("lastview", false, "$", 10, "^", 500);
</script>/***************************************/
/* title: operate cookie
/* author: danica7773
/**************************************/var cookieOperate = {
isCookie: function() {
return navigator.cookieEnabled;
},
cookieMap: function() {
var _map = {};
if(this.isCookie()) {
var _cookie = document.cookie.split(';');
var _len = _cookie.length;
var _subItem;
for(var i = 0; i < _len; i++) {
_subItem = _cookie[i].split('=');
_map[decodeURI(_subItem[0].replace(/^\s*|\s*$/g, ''))] = decodeURI(_subItem[1]);
}
}
return _map;
},
searchCookie: function(key) {
var _map = this.cookieMap();
return (_map[key])? _map[key] : null;
},
deleteCookie: function(key) {
var _value = this.searchCookie(key);
if(_value) {
this.writeCookie({k: key, v: ''});
}
},
/**
/*op = {
/* k: key,
/* v: value,
/* f: true | false, //(cover the old record)
/* s: splitFlag
/* n: 10, //max number
/* t: expires, //seconds
/* d: domain,
/* p: path,
/* }
**/
writeCookie: function(op) {
var _cookie = [];
if(op.k && typeof(op.v) !== 'undefined' && op.v !== null) {
var _v = encodeURI(op.v);
if(!op.f) {
var _s = (op.s)? op.s : '|';
var _n = (op.n)? op.n : 10;
var _old = this.searchCookie(op.k);
if(_old) {
var _arr = _old.split(_s);
var _len = _arr.length;
for(var i = 0; i < _n - 1; i++) {
if(!_arr[i]) {
break;
}
_v += _s + encodeURI(_arr[i]);
}
}
}
_cookie.push(op.k + '=' + _v);
}
if(op.t) {
_cookie.push('expires=' + this.setExpires(op.t));
}
if(op.d) {
_cookie.push('domain=' + op.d);
}
if(op.p) {
_cookie.push('path=' + op.p);
}
document.cookie = _cookie.join(';');
},
setExpires: function(seconds) {
var _d = new Date();
_d.setTime(_d.getTime() + (seconds * 1000));
return _d.toGMTString();
}
}