BOM-location

Yukino 311 2021-12-29

简介

location是最有用的BOM对象之一,提供了当前窗口中加载文档的信息,以及通常得导航功能,它既是window的属性,也是document的属性,也就是说window.loaction和document.location指向的是同一个对象。

查询字符串

获取URL中查询字符串有两种常见的方式,location.search和URLSearchParams

  1. location.search
    location.search包含了url中以?开始到结束的字符串,一般对其进行字符串切割以获取参数。
function getQueryVariable(variable)
{
    let query =  decodeURI(window.location.search.substring(1));

    let vars = query.split("&");
    for (let i=0;i<vars.length;i++) {
        let pair = vars[i].split("=");
        if(pair[0] == variable){return pair[1];}
    }
    return(false);
}
  1. URLSearchParams
    URLSearchParams提供了一组标准API方法,通过他们可以检查和修改查询字符串。
let searchParam = new URLSaerchParam(location.search);

searchParam.get('varibleName');

操作地址

  1. 直接操作location.param=即可更改对应的param,出了hash之外,更改location的属性都会导致页面重新加载URL,如,可通过location.href="http://www.google.com"将页面跳转到谷歌,但这种方式会在浏览历史中增加新的浏览记录。
  2. 调用location.replace(URL)方法可以跳转到URL指向的页面,这种方式不会增加新的浏览记录,同时也无法通过后退返回上一页面。
  3. location.reload(true)可以重新加载页面,若参数为true,则从服务器重新加载页面,若不带参数,可能从缓存中重新加载。

# 前端 # 浏览器