js页面跳转另一页的方法——location.href和location.replace用法和区别
除了通过a标签实现跳转外,js的location对象提供了2个方法可以实现跳转到另一个页面,如下:
window.location.href = "http://www.fly63.com";
window.location.replace(" http://www.fly63.com ");通常在使用中,上面两种并没有多少差别,但是在做回退操作的时候就能发现区别了。document.location.replace跳转后,浏览器不可以通过“后退”退回到原页面,使用js方法返回也不行,如:window.location.go(-1)。关于document.location.href跳转还发现一个细节:
用个例子来说明:
假设有a,b,c三个页面,a跳转到c,中间有个b页面,其中b页面中脚本执行了一句:
document.location.href="/c.htm";所以用户看不到b页面直接跳转到了c页面。但是浏览器记录却记录了三个页面:a, b, c。
这个时候点击返回按钮从c就是返回到b,而b又会马上跳转到c,所以就出现了点击返回按钮,页面刷新后,还是停留在原来页面c的情况。这意味着用户返回会陷入无限地跳转回退的循环之中 。解决方案就是b页面的脚本换成下面这句:
window.location.replace("c.html");说明:
1、window.location.href方式用于跳转到指定页面地址,location.replace将目前浏览器的地址替换掉,调用这个方法的网页,将不会被写入浏览记录。
2、当出现上述中间页跳转的情况下,使用window.location.replace比window.location.href更好,因为replace()并不保存原页面在访问历史中,这意味着用户不会陷入无限的跳转回退的循环中。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!