window.location.replace 在ie下不起作用

来源:互联网 发布:mac版千牛多账号登陆 编辑:程序博客网 时间:2024/06/04 19:32
有3个页面(a.html, b.html, c.html).
默认打开a.html页面,然后在a.html页面中通过一个链接转向b.html页面。
现在,我在b.html页面中用window.location.replace("c.html");与用window.location.href("c.html");分别进入c.html页面.
从用户界面来看是没有什么区别的,但是现在c.html页面有一个“返回”按钮,
用window.location.href("c.html");进入c.html页面时,
    c.html页面中的调用window.history.Go(-1);wondow.history.back();进入c.html页面时,一点这个"返回"按钮就要返回b.html页面的话,
而如果用window.location.replace("c.html");进入c.html页面的话,
    c.html页面中的调用window.history.go(-1);wondow.history.back();方法是不好用的,会返回到a.html.

因为window.location.replace("c.html");是不会向服务器发送请求而进行跳转,而window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的,所以会跳到系统默认页面a.html 。

window.location.href("c.html");是向服务器发送请求的跳转,window.history.go(-1);wondow.history.back();方法是根据服务器记录的请求决定该跳到哪个页面的,所以就可以返回到b.html。


附录:

在ie浏览器下并不会出现用location.replace()后再用location.history.back()返回a.html的情况,location.replace()对ie不起作用