省略历史cookie中的某些页面

时间:2013-05-23 14:31:55

标签: javascript cookies history

我正在使用此脚本将用户的历史记录存储到访问过去10页的cookie中。到目前为止,我已经使用document.title和列表中的url显示了cookie数据的脚本。

我的问题是添加页面跳过功能的最简单方法是什么,这会让我省略某些页面被添加到历史记录cookie中?我尝试过的所有东西都没有用,因为它有点超出我的知识范围。

感谢您的时间和帮助。

JS:

(function($){

var history;

function getHistory() {
    var tmp = $.cookie("history");
    if (tmp===undefined || tmp===null) tmp = "";
    if ($.trim(tmp)=="") tmp = [];
    else tmp = tmp.split("||");
    history = [];
    $.each(tmp, function(){
        var split = this.split("|");
        history.push({
            title: split[0],
            url: split[1]
        });
    });
}

function saveHistory() {
    var tmp = [];
    $.each(history, function(){
        tmp.push(this.title+"|"+this.url);
    });
    $.cookie("history",tmp.join("||"),{ expires: 60, path: "/" });
}

function addToHistory(title,url) {
    var newHistory = []
    $.each(history, function(){
        if (this.url!=url) newHistory.push(this);
    });
    history = newHistory;
    if (history.length>=10) {
        history.shift();
    }
    history.push({
        title: title,
        url: url
    });
    saveHistory();
    writeHistory();
}

function writeHistory() {
    var list = $("<ul />");
    $.each(history, function() {
        var element = $("<li />");
        var link = $("<a />");
        link.attr("href",this.url);
        link.text(this.title);
        element.append(link);
        list.append(element);
    });
    $("#history").empty().append(list);
}

$(document).ready(function(){
    getHistory();
    var url = document.location.href;
    var split = url.split("#");
    var title;
    if (split.length > 1) {
        title = $("#"+split[1]).text();
    } else {
        title = document.title;
    }
    if (title===undefined || title===null || $.trim(title)=="") title = url;
    addToHistory(title,url);
    url = split[0];
    $("a[href^='#']").click(function(){
        var link = $(this);
        var href = link.attr("href");
        var linkUrl = url+href;
        var title = $(href).text();
        if (title===undefined || title===null || $.trim(title)==="") title = linkUrl;
        addToHistory(title,linkUrl);
    });
});

})(jQuery);

HTML:

<div id="history"></div>

1 个答案:

答案 0 :(得分:0)

你可以用几种方法来解决这个问题......你可以保留一个网址数据集不保存,或者你可以在页面中放一些让脚本知道不保存该页面的内容吗?...

  

function saveHistory(){     if($('。no-save-history'))返回false;     /*...*/   }

HTML:

  

&LT; div id =“history”class =“no-save-history”&gt;