history.back都是从浏览器缓存读取数据。要刷新就考虑其他代码。
-------------------------------------------------------------------
可以考虑把history.back的步骤分隔,然后重新实现。
如果只通过js来完成,可以考虑以下代码:
// 先获取上一个页面,然后再跳转到那个页面
// 在绝大部分情况下的效果就是history.back()的刷新版本
window.location.replace(document.referrer)
document.referrer:
document.referrer可以引用到上一个页面,这个属性是由浏览器支持的。在不同情况下值可能和history.back不一样,但是绝大部分情况下跟你想要的结果是一致的。
当用户是通过页面导航内部切换到新页面的(例如<a>标签,或者改变url的代码),document.referrer和history.back指向的页面都是上一个页面。
当用户是通过书签打开网页的,document.referrer是空的,history.back却是可用的,可以返回到点击书签之前的页面。
window.location.replace:
history.back不一定就不会刷新界面:当缓存不可用的时候,还是会刷新的。window.location.replace也不一定会刷新页面,当服务器"明确"告诉浏览器缓存还可以用的时候,浏览器一般不会再刷新页面。不过在一般情况下,使用window.location.replace替换history.back就能达到想要的效果。
所以大可使用window.location.replace(document.referrer)
2013-07-18
<script>
function window.onbeforeunload(){
window.opener.window.location.reload(true);
}
</script>
把它加到子窗口的<head>和</head>之是任意一个地方就OK了
2013-07-18
其它当然也包括这个功能。
2013-07-18
location.href="<%=Request.ServerVariables("HTTP_REFERER")%>";
</script>
应该是没问题的!