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)
。。。