我正在尝试使用搜索过滤器(文本框和复选框)创建一个小型网站。我已经四处搜索并看到只有在刷新后才能记住过去搜索过滤器的方法是使用会话存储。
然而,问题在于,即使用户浏览网站并返回搜索页面,他/她仍会看到过去的搜索过滤器。我想在用户来自不同页面时重置搜索过滤器。
我在考虑如何在用户离开页面后删除存储在会话存储中的这些变量,并在用户刷新时保留它。
我目前的代码是这样的:
var selectedCompanies = new Array;
var selectedCategories = new Array;
var searchWord = "";
if(sessionStorage.getItem('selectedCompanies') != null){
selectedCompanies = JSON.parse(sessionStorage.getItem('selectedCompanies'));
alert("NOT NULL!");
//loop to recheck checkboxes
}
if(sessionStorage.getItem('selectedCategories') != null){
selectedCategories = JSON.parse(sessionStorage.getItem('selectedCategories'));
//loop to recheck checkboxes
}
if(sessionStorage.getItem('searchWord') != null){
searchWord = sessionStorage.getItem('searchWord');
$('#filter-searchbar').val(searchWord);
}
请在用户离开搜索页面后如何删除会话存储中的变量。谢谢!
答案 0 :(得分:0)
在常用JavaScript文件中添加以下代码。在搜索页面以外的所有页面上引用此文件:
sessionStorage.removeItem('selectedCompanies');
sessionStorage.removeItem('selectedCategories');
sessionStorage.removeItem('searchWord');
这将清除所有其他页面上的搜索参数,但允许数据在搜索页面上保留。