共有三页,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>
答案 0 :(得分:1)
location.href重定向只会添加到浏览器历史记录中,如果它来自用户启动的操作。在这里,您在onload事件上调用它,因此它不会被添加到历史记录
要在浏览器历史记录中插入的用户History.pushState
答案 1 :(得分:0)
我在这里有一个观察。如果我们在以编程方式调用 location.href 之前添加 setTimeout,比如延迟 2 秒,当前页面将被添加到历史记录中。看起来这种行为有点异步,它发生在所有浏览器中。不知道为什么这个bug这么久没有解决。