我想实现以下目标:
如果用户打开指向我网站中某个子页面的链接,例如 index.html#Contact,我想在 index.html#Contact 令牌之前将 index.html# 令牌添加到历史堆栈中,以便用户,当单击浏览器的back- 按钮首先出现在我网站的起始页上,然后在下一个back实际上离开页面正常。
我认为我可以使用以下“onload”执行的 javascript 轻松实现这一点:
var href = window.location.href;
var hashPos = href.indexOf("#");
if ((hashPos > 0) & (hashPos+1 < href.length)) {
window.location.replace(href.substring(0, hashPos+1));
window.location.assign (href);
}
但由于某种原因,这根本没有做任何事情......
我让它在 Firefox 中像这样工作:
var href = window.location.href;
var hashPos = href.indexOf("#");
if ((hashPos > 0) & (hashPos+1 < href.length)) {
window.location.replace(href.substring(0, hashPos+1));
setTimeout(function() {
window.location.assign(href);
}, 0);
}
但在 IE 和 Chrome 中,这也无济于事......
任何建议(除了“不要这样做!”)?