的位置.替换以删除当前页面的历史记录,而无需重定向

location.replace to remove history of current page without redirecting?

本文关键字:重定向 记录 替换 位置 删除 当前页 历史      更新时间:2023-09-26

我最近在这里贴了一个关于我的问题的问题。

当我点击提交按钮或链接时,我不希望用户点击按钮或链接的页面历史记录被记录在浏览器中。

我收到了使用history.pushState()的建议。但我对功能不熟悉,急需解决方案。

我仍然不确定该做什么。但是谁能建议我是否可以用这个来解决我的问题呢?
<input type="submit" onclick="location.replace(this.href); return false;"/>
<a href="foo.jsp" onclick="location.replace(this.href); return false;">Continue</a>

示例:我有一个页面bar.html,它有一个链接<a href="foo.html">Foo</a>。当用户点击链接时,应将其重定向到foo.html,并且不应记录bar.html的浏览器历史,以便用户不能使用后退按钮返回该页。

编辑:还有我怎么能强迫浏览器不存储在缓存中的某个页面,所以下次用户访问时,浏览器请求服务器的页面。

使用JS更改页面,使用如下代码:

<a href="foo.jsp" onclick="location.href=this.href; return false;">Continue</a>

但我不确定它的历史工作

下面是一个工作示例:

文件: a.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>A</title>
</head>
<body>
    <h1>A</h1>
    <a href="b.html">B</a>
</body>
</html>

文件: b.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>B</title>
    <script>
        window.location.replace('c.html');
    </script>
</head>
<body>
    <h1>B</h1>
    <a href="c.html">C</a>
</body>
</html>

文件: c.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>B</title>
</head>
<body>
    <h1>C</h1>
</body>
</html>