我正在尝试在我正在构建的CMS中创建导航,但似乎我修复的每个问题只会给我带来更多问题。
我想做以下事情:
问题1 :添加样本后,网址不会更改,我无法使用PHP更改标题,因为已经发送了! 因此,当用户刷新页面时,将创建新的样本等,等等。 我不想要那个,所以我添加了一个步骤:
我添加了一个新的代码和平(javascript):
location.replace(window.location + '/swatch/' + newSwatchID);
问题2 :此方法刷新页面。我只是想将它添加到URL而不是刷新它。
为了防止出现上述问题,我尝试了历史.pushState' (如果浏览器支持)我添加了以下代码:
history.pushState(null, null, window.location+'/swatch/'+newSwatchsetID);
第3期:这会添加历史记录事件,因此当用户点击浏览器时会回复'按钮,他再次在URL:http://cms.abayocms.dev/swatch-settings/?/site/1上结束。哪个AGAIN创建了一个新的样本。
有没有办法阻止这种情况?
答案 0 :(得分:1)
如果要更新当前状态,则必须使用history.replaceState();
只需使用history.replaceState(null, null, window.location+'/swatch/'+newSwatchsetID);
这不会在History对象上添加新状态,因此history.back()
将重新加载上一页而不是状态对象。