window.location / window.history / 以及相关事件

先看看这两个单词的中文翻译:

  • location :地方; 地点; 位置; 外景拍摄地; 定位
  • history :历史; 发展史,历史; 历史课; 历史学
    看翻译,大致就能了解这两个对象的作用。

window.location 对象所包含的属性和方法

(翻译:窗口的地址)

属性 描述
hash 锚信息,URL的#号后面的内容,即可以读也可以写,写了锚信息是不会刷新页面。
host 主机名和当前 URL 的端口号
hostname 当前 URL 的主机名
href 完整的 URL
pathname 当前 URL 的路径部分
port 当前 URL 的端口号
protocol 当前 URL 的协议
search 查询信息,从URL的 ?号与 #号之间的内容 比如:xxx?user=123&password=123
方法 描述
reload() 重新加载,刷新页面

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):修改当前的访问记录,不能跨域,且不造成页面刷新;

属性:

  length、state

另,HTML5新增了可以监听 history 和 hash 访问变化的全局方法:

  • window.onpopstate:当调用history.go()、history.back()、history.forward()时触发,pushState() \ replaceState() 方法不触发。
  • window.onhashchange:当前 URL 的锚部分(以 '#' 号为开始) 发生改变时触发。
posted @ 2020-01-06 16:29  真的想不出来  阅读(871)  评论(0编辑  收藏  举报