Javascript 我如何让网站在点击链接并返回后看起来一样?

Javascript 我如何让网站在点击链接并返回后看起来一样?,javascript,browser-history,Javascript,Browser History,我使用在带有产品列表的页面上按颜色/大小过滤产品 过滤工作正常,但如果用户单击产品并移动到产品页面,然后单击浏览器后退按钮,则选择框将显示正确的颜色/大小,但列表不会被过滤。用户必须选择不同的颜色/大小,然后再次选择相同的颜色/大小才能看到正确的列表(或者我会添加一个过滤器按钮) 有没有办法确保用户在使用“后退”按钮时立即获得过滤列表? 理想情况下,我不希望myFunction()再次运行,因为这可能会导致用户不得不向下滚动,而只是让站点看起来与单击链接之前相同。您可以通过以下操作在刷新/导航过

我使用
在带有产品列表的页面上按颜色/大小过滤产品

过滤工作正常,但如果用户单击产品并移动到产品页面,然后单击浏览器后退按钮,则选择框将显示正确的颜色/大小,但列表不会被过滤。用户必须选择不同的颜色/大小,然后再次选择相同的颜色/大小才能看到正确的列表(或者我会添加一个过滤器按钮)

有没有办法确保用户在使用“后退”按钮时立即获得过滤列表?
理想情况下,我不希望myFunction()再次运行,因为这可能会导致用户不得不向下滚动,而只是让站点看起来与单击链接之前相同。

您可以通过以下操作在刷新/导航过程中保留值:


//当用户选择一个值时,保存它
const onSelectChange=事件=>{
localStorage.selectValue=event.target.value;
}
//当用户导航到该页面时,如果有保存的值,请设置该值
if(localStorage.selectValue){
document.querySelector('select')。value=localStorage.selectValue;
}

这难道不意味着如果今天有人过滤页面,然后关闭窗口,两天后返回,页面仍然会被过滤吗?对。除了
querySelector
和非
id
…-我的意见。我尊重你的回答。@Nino下面的回答是我的选择,除了在元素中使用
id
,而不是使用
querySelector
。您必须检查用户可以更改的所有元素,并从
localStorage
读取和设置,然后在每个元素更改时保存到其中。您可以尝试
localStorage.body=escape(document.body.innerHTML)
document.body.innerHTML=unescape(localStorage.body)
。。。