JavaScript location.href不会将记录添加到浏览器历史记录中

时间:2016-11-11 09:37:22

标签: javascript html5

共有三页,A,B和C. A有一个标签,其href重定向到B. B有JavaScript代码并重定向到C. 在C中,我点击浏览器后退按钮,浏览器重定向到A.为什么不是B?提前谢谢。

测试链接 第A页:http://o17o2o.com:8000/article-href.html

第A页

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>Test</title>
</head>
<body>
    <a href="/href-redirect.html">click me</a>
</body>
</html>

Page B

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>waiting</title>
</head>
<body>
    Page B
    <script type="text/javascript">
        window.location.href = '/original.html';
    </script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

location.href重定向只会添加到浏览器历史记录中,如果它来自用户启动的操作。在这里,您在onload事件上调用它,因此它不会被添加到历史记录

要在浏览器历史记录中插入的用户History.pushState

答案 1 :(得分:0)

我在这里有一个观察。如果我们在以编程方式调用 location.href 之前添加 setTimeout,比如延迟 2 秒,当前页面将被添加到历史记录中。看起来这种行为有点异步,它发生在所有浏览器中。不知道为什么这个bug这么久没有解决。