上一篇有提到 Javascript刷新页面的几种方法再来做一些补充~
首先页面跳转、刷新、重定向要看实施这个动作的物件,一般有三个物件:本页面的刷新跳转、父页面的刷新跳转、最外层页面的刷新跳转
一般window.location.href是操作本页面的位址,parent.location.href是操作父页面的位址,top.location.href是操作最外层页面的位址。
无论是本页面刷新跳转、父页面刷新跳转还是最外层页面刷新跳转都有这么几种方式:
1 history.go(0)
2 location.reload()
3 location=location
4 location.assign(location)
5 document.execCommand('Refresh')
6 window.navigate(location)针对IE,firefox不支援
7 location.replace(location)
history.go(0):刷新本页
history.go(-1):回到上一页
history.go(-2):回到上一页的上一页
reload()跟history.go(0)相同
window.location与assign相同
在实际应用的时候,重新刷新页面通常使用: location.reload() 或者是 history.go(0) 来做。因为这种做法就像是用户端点F5刷新页面,所以页面的method="post"的时候,会出现「网页过期」的提示。那是因为Session的安全保护机制。可以想到: .net中当调用 location.reload() 方法的时候, aspx页面此时在服务端记忆体里已经存在, 因此必定是isPostback 的。
而这时我们希望页面重新载入一遍而不是重新提交的时候,我们可以用location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。你可以这么写: window.location.replace(location.href)
replace用法跟 location.href 相同,但用 replace 导到下页后,就不能再回到上一页.document.location.href和document.location.replace都可以实现从A页面切换到B页面,但他们的区别是:用document.location.href切换后,可以退回到原页面。而用document.location.replace切换后,不可以通过「后退」退回到原页面。
Javascript代码:
history.go(0);
//history的另外两个方法
history.back(); //后退到前一页
history.forward();//前进到当前页之后打开的页
window.location.reload();
window.location = window.location.href;
window.location.assign(window.location.href);//刷新当前页
window.location.assign("HTTP://www.google.com");//跳转到HTTP://www.google.com
window.location.replace(window.location.href);//刷新当前页
window.location.replace("HTTP://www.google.com");//跳转到HTTP://www.google.com
//父页面跳转
parent.window.history.go(0);
parent.window.location.reload();
parent.window.location = window.location.href;
parent.window.location.assign(window.location.href);//刷新父页面
parent.window.location.assign("HTTP://www.google.com");//父页面跳转到HTTP://www.google.com
parent.window.location.replace(window.location.href);//刷新父页面
parent.window.location.replace("HTTP://www.google.com");//父页面跳转到HTTP://www.google.com
///最外层则用top关键字