先看看这两个单词的中文翻译:
- location :地方; 地点; 位置; 外景拍摄地; 定位
- history :历史; 发展史,历史; 历史课; 历史学
看翻译,大致就能了解这两个对象的作用。
window.location 对象所包含的属性
(翻译:窗口的地址)
属性 | 描述 |
---|---|
hash | 从井号 (#) 开始的 URL(锚) |
host | 主机名和当前 URL 的端口号 |
hostname | 当前 URL 的主机名 |
href | 完整的 URL |
pathname | 当前 URL 的路径部分 |
port | 当前 URL 的端口号 |
protocol | 当前 URL 的协议 |
search | 从问号 (?) 开始的 URL(查询部分) |
window.history 对象
对象包含浏览器的历史。
方法:
- history.back() // 与在浏览器点击后退按钮相同,方法加载历史列表中的前一个 URL。
- history.forward() // 与在浏览器中点击向前按钮相同,方法加载历史列表中的下一个 URL。
- history.go(1); // go() 里面的参数表示跳转页面的个数 例如 history.go(1) 表示前进一个页面,history.go(-1) 表示后退一个页面,history.go(0) 表示刷新页面。
- pushState(stateData, title, url):在history中创建一个新的访问记录,不能跨域,且不造成页面刷新;
- replaceState(stateData, title, url):修改当前的访问记录,不能跨域,且不造成页面刷新;
另,HTML5新增了可以监听history和hash访问变化的全局方法:
window.onpopstate:当调用history.go()、history.back()、history.forward()时触发;pushState() replaceState() 方法不触发。
window.onhashchange:当前 URL 的锚部分(以 '#' 号为开始) 发生改变时触发。触发的情况如下:
属性:
length、state