-2

我有一个客户要求我为他的内部 Intranet/知识库开发一个页面。

所以我们有

第 1 页:包含指向第二页(或多个第二页)的链接

当用户单击第 1 页上的链接时,将打开一个新窗口(第 2 页)。第 2 页实际上再次加载第 1 页,第 1 页被刷新并加载知识库文章 - 实际上是一个弹出窗口。知识库文章加载在具有原始页面内容的新页面下方(加上一个模式,表示知识库文章位于单独的选项卡中)。

到目前为止,我有一个可行的解决方案,但这个人希望我让它工作,以便新窗口(第 2 页)的后退按钮工作。目前第 2 页是一个新选项卡,因此没有历史记录(但用户将其视为原始页面)。

所以问题是 - 有没有办法给新标签一些历史记录,这样当他们点击后退按钮时,它会把他们带到他们期望的地方。

希望这对某人有意义

4

1 回答 1

0

我找到了解决方案:

首先,当打开新窗口时,我在字符串中传递了一个变量,即 ?prevpage=http:/www.site.com/page.html

接下来在我添加的新页面上:

<script>
window.history.pushState( {} , '', '<?php echo $prevpage;?>' );
</script>

它将上一页放在新的窗口历史记录中(后退按钮)。

然后我把它放在页面底部,当点击后退按钮时,它使用 popstate 返回原始页面 URL:

<script>
window.addEventListener("popstate", function(e) {
window.location = "<?php echo $prevpage;?>";
});
</script>
于 2014-10-28T13:27:48.930 回答