location.replace删除当前页面的历史记录而不重定向?

时间:2013-05-21 03:57:36

标签: javascript

我最近发布了一个关于我的问题here的问题。

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

我收到了使用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的浏览器历史记录,以便用户无法使用“返回”按钮返回此页面。

编辑另外,如何强制浏览器不将某个页面存储在缓存中,以便下次用户访问时,浏览器会向服务器请求该页面。

2 个答案:

答案 0 :(得分:0)

对于使用JS的更改页面,请使用以下代码:

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

但我不确定它的历史作品。

答案 1 :(得分:0)

以下是一个工作示例:

文件: 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>