防止浏览器在历史记录中存储当前页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止浏览器在历史记录中存储当前页面相关的知识,希望对你有一定的参考价值。

我有一种情况,我在我的网站上打开一个用户启动的弹出窗口,指向另一个站点。用户不应直接访问此页面,并且只有在网站打开弹出窗口时才能在正常情况下访问此页面。

mysite.com -> mysite.myothersite.com

我注意到弹出窗口页面出现在历史记录中,更糟糕的是,出现在地址栏自动填充建议中。

此弹出窗口应该执行一次性实用程序操作,因此用户在其历史记录或自动填充建议中使用此操作没有用。但是,用户直接访问此弹出窗口(假设是偶然)。

虽然我不能阻止任何人这样做,但我想知道是否有可能让该页面不在浏览器历史记录中记录。它搞乱了我的分析。

答案

您可能想要查看history.replaceState提供的history API功能。

如果弹出窗口在同一位置提供,只需在弹出窗口的javascript中执行history.replacestate({}, 'mypage', '/my-page-address')即可。这样,它用myothersite历史记录条目替换mypage历史记录条目,而不是使用mypage,您可以使用原始页面的标题和地址。

另一答案

这是国家发挥作用的地方。在请求弹出窗口时,放置一些允许弹出窗口打开的指示器,然后当用户请求它时,清除该指示器。这种类型的信息通常通过后端会话状态完成,但也可以通过前端完成,但具有可靠性命中。

以上是关于防止浏览器在历史记录中存储当前页面的主要内容,如果未能解决你的问题,请参考以下文章

网站退出登录防止通过返回按钮回到历史页面

js之添加浏览器历史记录

在恢复 webview 时恢复历史记录和当前页面

js在新页面中返回到上一页浏览的历史位置

BOM-History历史记录对象

重定向到新网址,但从历史记录中删除以前的网址