搜了一个的js cookie 的用法,发现好多都是错误的,不是错得很离谱就是用法很老了,代码写得不简洁。最后自己搞好后总结下,这个需求还是比较普遍的,记录下
调用就直接 setHistory(keyWord);
记得要用jq的cookie 插件喔
var historyCount = 15; //保存历史记录个数
/**
* 增加浏览历史记录
* @return
*/
function setHistory(keyWord) {
var keyWords = $.cookie('keyWord');
if (keyWords) {
if(keyWord) {
var keys = keyWords.split(",");
for (var i = keys.length - 1; i >= 0; i--) {
if (keys[i] == keyWord) {
keys.splice(i, 1);
}
}
keys.push(keyWord);
if (keys.length >= historyCount) {
//删除最开始的多余记录
var count = keys.length - historyCount + 1; //需要删除的个数
keys.splice(0, count); //开始位置,删除个数
}
$.cookie('keyWord', keys.join(','), {expires: 365, path: '/'});
}
} else {
$.cookie('keyWord', keyWord, {expires: 365, path: '/'});
}
}
function delHistory(){
$.cookie("keyWord",null,{path:"/",expires: -1});
}
function getHistory(){
var keyWords = $.cookie('keyWord');
if(keyWords) {
var keys= keyWords.split(",");
var length = keys.length;
if (length > 0) {
$("#historyRecord").empty();
var htmlString = "<dt>历史搜索</dt><dd>";
for (var i = length - 1; i >= 0; i--) {
htmlString += "<a href='javascript:;' >" + keys[i] + "</a>";
}
htmlString += "</dd>";
$("#historyRecord").html(htmlString)
}
}
}
调用就直接 setHistory(keyWord);
记得要用jq的cookie 插件喔