跨多个页面保留 cookie 表单值

Persist cookie form values across multiple pages

设置:我有一个表单,捕获$thisSearch.val(),将其保存为cookie,并推送到一个数组。该表单是从 header 中的菜单项触发的叠加层,因此它可以出现在网站的任何页面上。

问题 是它似乎只 save/persist 输入值 on/from 它是在哪个页面上输入的。我正在尝试将所有这些值收集到一个 list.items() 数组中,该数组可以在站点的任何位置输入。

我已经尝试自己将字符串推送到数组而不是 add 函数并将 dom 移动到搜索表单。

当我知道具体要问什么时,我可以更新问题。我应该知道的任何指示/概念都会很棒。

var cookieList = function(cookieName) {
    var cookie = $.cookie(cookieName);
    var items = cookie ? cookie.split(/,/) : new Array();

    return {
        "add": function(val) {
            items.push(val);
            $.cookie(cookieName, items.join(','));
        },
        "items": function() {
            return items;
        }
    }
} 

var list = new cookieList("PreviousSearches");

$searchSubmit.on('click', function() {
    var $thisSearch = $(this).prev().find($searchInput);
    if( $thisSearch.val() == '' ) {
        alert('Please enter a search term');
        console.log( list );
        return false;            

    } else {
        searchTerm = $thisSearch.val() 
        list.add( searchTerm );
    }
});

var searchTerms = list.items();
var total = searchTermsFiltered;
var searchTermsFiltered = searchTerms.filter(Boolean).slice( - 5 ).reverse();
var searchtermClean = searchTermsFiltered.join();

$.each($(searchTermsFiltered), function(i,v){
    if (!window.location.origin)
    window.location.origin = window.location.protocol+"//"+window.location.host;
    var lastURLRaw = window.location.origin+'/bch/?s='+v;
    var lastURL = lastURLRaw.replace(/ /g, '+');
    listItem = '<li><a href="'+lastURL+'">'+v+'</a></li>';
    $('.tags, .search-tags').append(listItem );
});

我在下面的最佳答案中找到了来自 jquerys $.cookie 的路径说明符。

$.cookie(cookieName, items.join(',') , { path: '/' }); 来自我的代码。

why are my jquery cookies not available across multiple pages?