document.location - 不添加到历史记录

时间:2009-07-16 02:19:28

标签: javascript

我正在尝试在onLoad事件上使用document.location(.href)从一个页面(A)重定向到另一个页面(B)。

根据我的理解,如果我使用document.location.href(而不是.replace),它应该将(A)添加到我的历史记录中。但是,这似乎并没有发生。

我尝试过设置document.location,document.location.href和使用.assign,但这些似乎都没有将第一页添加到历史记录中。是否有任何JS技术可以通过onLoad完成,这将导致(A)在历史中?

干杯, 维克多

3 个答案:

答案 0 :(得分:7)

'location.href','document.location'或任何这些变体只会在浏览器历史记录中添加条目(如果它来自用户启动的操作)。 例如,如果用户单击触发执行“location.href”的函数的按钮,则会将其添加到浏览器历史记录中,但如果onload事件调用“location.href” - 这不是用户启动的操作,它不会被添加到历史记录中。

答案 1 :(得分:3)

如果您修改document.location.href,它肯定会添加到历史记录中。

Try this demo page →

代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<title>Sandbox</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
body { background-color: #000; font: 16px Helvetica, Arial; color: #fff; }
</style>
<script>
$(document).ready( 
function() 
{ 
   $('#hello').click( function(ev) { ev.preventDefault(); document.location.href='http://www.google.com';}); 
} 
);
</script>
</head>
<body>
  <p>Hello from JS Bin</p>
  <a id="hello" href="#">Click Me</a>
</body>
</html>

您是否可以创建一个示例页面,其中显示浏览器历史记录未更改?

答案 2 :(得分:0)

尝试:

 location.replace('www.google.com');

这应该将页面放在您的历史记录中。