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

时间:2018-01-04 15:03:37

标签: javascript browser popup browser-history

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

mysite.com -> mysite.myothersite.com

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

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

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

2 个答案:

答案 0 :(得分:1)

您可能希望查看history API提供的history.replaceState功能。

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

答案 1 :(得分:-1)

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