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


通常,在前端页面中如果需要跳转到指定页面,可以通过<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

 

posted @ 2017-05-16 16:07  nuccch  阅读(1013)  评论(0编辑  收藏  举报