在浏览器窗口中加载新的url

原文链接: https://www.mk2048.com/blog/blog.php?id=h0c2iabki0ab&title=%E5%9C%A8%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AA%97%E5%8F%A3%E4%B8%AD%E5%8A%A0%E8%BD%BD%E6%96%B0%E7%9A%84url


通常,在前端页面中如果需要跳转到指定页面,可以通过<a>标签进行跳转。
而在某些情况下,比如ajax调用之后想直接跳转到指定页面,想跳转页面不能再用<a>标签实现。
此时,可以通过浏览器Location对象实现。


Location对象包含有关当前URL的信息。
Location对象是 Window 对象的一个部分,可通过window.location属性来访问。
通过Location对象改变当前浏览器窗口的url,有3种方式:

1. 直接设置Location对象的href属性为指定URL:window.location.href = url;
2. 调用Location对象assign(url)方法加载新的文档:window.location.assign(url);
3. 调用Location对象replace(url)方法用新的文档替换当前文档:window.location.replace(url);

3种方式都可以达到相同的目的,但是对于浏览器来说,他们是存在区别的:
(1)设置href属性和assign()方法都是加载一个新的文档,并且会在History对象中生成一个新的记录
(2)replace()方法是用一个新文档取代当前文档:replace()方法不会在History对象中生成一个新的记录。当使用该方法时,新的URL将覆盖History对象中的当前记录。

具体来说,如果需要在浏览器中点击前进/后退按钮查看访问历史时,不能使用replace()方法,只能调用assign()方法或者设置href属性实现。
详见:http://www.w3school.com.cn/jsref/met_loc_replace.asp


更多专业前端知识,请上 【猿2048】www.mk2048.com

猜你喜欢

转载自blog.csdn.net/qq_45670012/article/details/102766963