跨多个页面保留 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?
设置:我有一个表单,捕获$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?