location是一个特殊的对象,它既是window对象的属性,也是document的属性。
window.location === document.location // 返回true
- location.href
- location.protocol
- location.host
- location.hostname
- 顶级域名
如,.com - 一级域名
如,baidu.com - 二级域名
如, www.baidu.com,其中 www是主机名, 又如news.baidu.com、bbs.baidu.com、email.baidu.com。
- 顶级域名
- location.port
- location.pathname
- location.search
- location.hash
#
代表网页中的一个位置,#
右边的字符就是这个位置的标志符。
如何将元素定位到可视区,有多种方法,其基本原理都是hash。
所以,hash是和浏览器进行对话的,和服务器没有关系。
发送http请求时,hash不会被发送给服务器,因此改变hash不会触发网页重载。
除location.protocol
,改变以上任一项都可以改变URL,从而实现页面跳转,且当前页面会被保存到历史会话中,用户可通过回退按钮返回当前页面。
- location.reload()
重载当前页面,且从缓存中加载,也不一定从缓存中加载。
如果Disable cache
勾选了,将从服务器加载,见下图。
- location.reload(true)
重载当前页面,且强制从服务器重载,但不一定从服务器重载。
如果Disable cache
未勾选,将从缓存中加载,如下图。
- location.assign()
从当前页面跳转到指定页面。
调用location.assign()后,当前页面会被保存到历史会话中,这意味着用户可以通过点击回退按钮返回当前页面。
- location.replace()
从当前页面跳转到指定页面。
调用location.replace()后,当前页面不会被保存在历史会话中,因此用户无法通过点击回退按钮返回当前页面。