简介
location是最有用的BOM对象之一,提供了当前窗口中加载文档的信息,以及通常得导航功能,它既是window的属性,也是document的属性,也就是说window.loaction和document.location指向的是同一个对象。
查询字符串
获取URL中查询字符串有两种常见的方式,location.search和URLSearchParams
- 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);
}
- URLSearchParams
URLSearchParams提供了一组标准API方法,通过他们可以检查和修改查询字符串。
let searchParam = new URLSaerchParam(location.search);
searchParam.get('varibleName');
操作地址
- 直接操作
location.param=
即可更改对应的param,出了hash之外,更改location的属性都会导致页面重新加载URL,如,可通过location.href="http://www.google.com"
将页面跳转到谷歌,但这种方式会在浏览历史中增加新的浏览记录。 - 调用location.replace(URL)方法可以跳转到URL指向的页面,这种方式不会增加新的浏览记录,同时也无法通过后退返回上一页面。
- location.reload(true)可以重新加载页面,若参数为true,则从服务器重新加载页面,若不带参数,可能从缓存中重新加载。