BOM对象之一,提供与当前窗口中加载的文档有关的信息,以及还提供一些导航功能。它一方面保存当前文档信息,另一方面将URL解析为可访问独立片段。它既是window对象属性又是document对象属性,即window.location === document.location
location对象实现了URLUtils属性。
// 查询字符串参数
function getQueryStringArgs(){
// 获取去掉?的查询参数
var qs = (location.search.length > 0 ? location.search.substring(1) : "");
var args = {}; //数据对象
var items = qs.length > 0 ? qs.split('&') : [];
for(var i = 0; i < items.length; i++){
args[items[i].split('=')[0]] = decodeURIComponent(items[i].split('=')[1]);
console.log(items[i].split('=')[0] + ':' + decodeURIComponent(items[i].split('=')[1]));
}
return args;
}
// URLSearchParams:keys(),values(),entries()
var paramsObj = new URLSearchParams(location.search);
paramsObj.toString();
for(var pair of paramsObj.entries()) {
console.log(pair[0]+ ', '+ pair[1]);
};
location对象实现了URLUtils方法。除toString之外这些方法都用来改变浏览器位置。
location.href='urlX'
和window.location='urlX'
会以url为'urlX'调用assign()方法。即window.location='www.meituan.com'和location.href='www.meituan.com'
效果相同replace
toString: 返回一个字符串,包含整个URL。效果同location.href,但不能修改location的值。
安全设置如(CORS:跨域资源共享)可能会限制实际加载页面。
location.hash = '#section1';
location.search = '?q=javascript';
location.hostname = 'www.meituan.com';
location.pathname = 'mydir'; location.port = 8080;
定义: window.location和document.location是一个只读属性,返回一个location对象,包含文档当前地址的相关信息。但是可以赋值给window.location。
window.location = 'http://www.meituan.com'; // location = 'http://www.meituan.com';
alert(window.location);
语法: var oldLocation = window.location; window.location = newLocation