0

我想实现以下目标:

如果用户打开指向我网站中某个子页面的链接,例如 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 中,这也无济于事......

任何建议(除了“不要这样做!”)?

4

0 回答 0