有关网址是example.com/news/。通过这个url加载的页面包含一些复选框和一个按钮。我使用对象筛选器,其中包含一些键,如checkbox1、checkbox2等,如果选中复选框,则键得到一个真值,如果未选中,则得到一个假值。
最后,有一个var overwriteURL,其中包含“一般老年人-青年”的值。
现在,当单击该按钮时,我希望脚本将页面加载到容器中,并将url更改为example.com/news/general- without youth/而不加载新站点。我通过以下代码来实现这一点:
if(overwriteURL !== "" ) {
history.pushState({ test: "test" }, null, "/news/" + overwriteURL + "/");
}效果很好。正如Mozilla (https://developer.mozilla.org/de/docs/Web/Guide/DOM/Manipulating_the_browser_history)的文档用英语说的:如果我在脚本运行后导航到google.com,然后使用浏览器的后退按钮,URL-bar实际上应该包含更改的URL,所以example.com/news/general-老年人-青年/。但是它在pushState之前包含了原始URL,所以example.com/news/。但是,当我不导航到google.com,而是使用我想经常使用的后退按钮,然后前进按钮,直到它到达最新的历史条目,然后严格(改变) URLis显示在地址栏中。
哪里弄错了?
发布于 2021-01-20 00:32:02
我不知道怎么做,但我找到了解决办法。
我认为,问题似乎取决于var overwriteURL的内容。在真实的站点上,var有时包含一个字符和数字的混合物,并--分离值(例如:-一般的--老年人--U19-u16--按-)。
当我试验var overwriteURL的内容时,有时没有问题。最后,我替换了- by /,现在它工作得很好。例如,新的var overwriteURL看起来像general/老年人/U19/u16/press/。
因此,作为一个结论,似乎有一个问题,对许多-在URL中。
案子结案了!
https://stackoverflow.com/questions/65801190
复制相似问题