2016-11-11 252 views
5

有三个页面,A,B和C. A有一个标签,其href重定向到B. B有JavaScript代码并重定向到C. 当C,我点击浏览器后退按钮,浏览器重定向到A.为什么不是B?先谢谢你。JavaScript location.href不会将记录添加到浏览器历史

测试环节 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> 

网页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

分享您的代码?重定向如何?他们使用'window.location.href'或'history.replaceState'吗? – Dymos

+0

你能分享你的代码吗? –

+0

这会很烦人。如果你在C上按回来,那么你会(在javascript重定向之后)再次登录C. –

回答

1

location.href重定向只会添加到浏览器的历史,如果它是由用户启动的操作。在这里,你是在onload事件调用它,所以它不会被添加到历史

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

+1

您是否有指向支持您的论点的链接? – chelmertz

+0

谢谢。如果我在setTimeout中包装我的代码,location.href重定向也会添加到浏览器历史记录中。 –

+0

no setTImeout would not do it ...试试这个... $(document).ready( function() {('#redirectdiv')。click(function(){document.location.href ='b .com';}); } ); – Sameer