历史记录后退并刷新。

30

我希望能够实现History.back();的功能,并且完全刷新上一页。

有没有什么想法可以做到这一点(并且能在IE,FF和Chrome中使用)。

2个回答

30

你可以通过window.location将页面重定向到document.referrer

例如:

window.location.href = document.referrer;

修复Internet Explorer无法传递referrer到特定位置的问题:

if(IE){ //IE, bool var, has to be defined
    var newlocation = document.createElement('a');
    newlocation.href = URLtoCall;
    document.body.appendChild(newlocation);
    newlocation.click();
}

感谢您的建议,但在IE8中似乎不起作用(FF和Chrome正常)。document.referrer为空。 - Larsi
感谢您更新代码并提供建议。我不确定页面的名称(一些SharePoint魔法)。我能从Fiddler中找到吗?还有其他想法来解决document.referrer为空的问题吗? - Larsi
我正在处理同样的问题,而使用document.referrer并不等同于history.back()。即,如果您刷新页面,文档引用将是相同的页面,而history.back()将正确返回上一页。 - Bill Yang
1
截至2023年,这个仍然运作得非常出色! - Pepe Alvarez
1
截至2023年,这仍然运行良好! - undefined
显示剩余3条评论

8
你也可以使用location的replace()方法:
window.location.replace(document.referrer)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接