跨多个页面保留 Cookie 表单值



设置:我有一个表单可以捕获$thisSearch.val(),将其保存为cookie,然后推送到数组。表单是从页眉中的菜单项触发的覆盖层,因此可以显示在网站的任何页面上。

问题是它似乎只保存/保留输入该页面上的输入值。我正在尝试将所有这些值收集到一个可以在站点中的任何位置输入的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(',') , { 路径: '/' });从我的代码。

为什么我的 jquery cookie 不能跨多个页面使用?

最新更新