我正在尝试在onLoad事件上使用document.location(.href)从一个页面(A)重定向到另一个页面(B)。
根据我的理解,如果我使用document.location.href(而不是.replace),它应该将(A)添加到我的历史记录中。但是,这似乎并没有发生。
我尝试过设置document.location,document.location.href和使用.assign,但这些似乎都没有将第一页添加到历史记录中。是否有任何JS技术可以通过onLoad完成,这将导致(A)在历史中?
干杯, 维克多
答案 0 :(得分:7)
'location.href','document.location'或任何这些变体只会在浏览器历史记录中添加条目(如果它来自用户启动的操作)。 例如,如果用户单击触发执行“location.href”的函数的按钮,则会将其添加到浏览器历史记录中,但如果onload事件调用“location.href” - 这不是用户启动的操作,它不会被添加到历史记录中。
答案 1 :(得分:3)
如果您修改document.location.href,它肯定会添加到历史记录中。
代码:
<!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');
这应该将页面放在您的历史记录中。