问题描述
我有这个搜索功能,它应该先刷新页面(清理页面中的内容)然后显示结果。
searchForm.addEventListener("submit",function(event)
{
window.location.reload(); //should do this first
event.preventDefault();
searchedname.innerText = searchBar.value;
changelogoImage(searchedname);
giveCompanieSymbol(searchedname);
TurnVisible(companylogo);
TurnVisible(overviewDataContainer);
TurnVisible(separadoresAnalise);
TurnVisible(personaliseParagrafo);
}
)
如果不创建另一个函数或分离的事件,我想不出一个简单/简单的解决方案。有没有更简单的方法来说明这个功能:
我认为如果我将 reload() 放在函数的第一行会发生这种情况,但似乎并非如此。
解决方法
您无法刷新页面并然后对其进行修改,因为您的代码运行的环境(连同您的代码)已被重新加载过程破坏和丢弃页面。
相反,要么:
-
就地修改页面而不是刷新页面。
或
-
对查询字符串参数中的搜索信息进行编码,并将 URL 分配给
window.location
以加载新页面,并在页面加载时读取和应用这些查询字符串参数。或
-
使用
sessionStorage
临时存储它们,然后在页面加载时再次应用它们。
#1 是当今常用的方法。鉴于它的搜索信息,#1 也是一种很正常的方法。