location对象是一个很特别的对象:既是window对象的属性,又是元素document对象的属性。即:window.location === document.location
location
对象的所有属性:
- hash —— 返回URL中的hash
- host —— 返回服务器名称和端口号
- hostname —— 返回不带端口号的服务器名称
- href —— 返回当前加载页面的完整URL(同
location.toString()
的返回值) - pathname —— 返回URL中的目录和/或文件名
- port —— 返回URL中指定的端口号
- protocol —— 返回页面使用的协议
- search —— 返回UTL的查询字符串。此字符串以问号开头
1. 查询字符串参数
location.search
没有办法逐个访问其中的每个查询字符串参数。故可以创建这样的函数,以解析查询字符串,然后返回包含所有参数的一个对象
function getQueryStringArgs(){
// 假设url为 https://www.google.co.jp/?hl=zh-cn&gws_rd=cr&ei=MFDjV73sHYHa0ASqnLvoAw#hl=zh-cn&q=2016%E5%B9%B4github%E4%B8%8A%E5%8D%81%E5%A4%A7+%E5%89%8D%E7%AB%AF
// 取得查询字符串并去掉开头的问号 —— location.search得到的是url问号后的字符串
var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
args = {}, //保存数据的对象
items = qs.length ? qs.split("&") : [], //取得每一项
item = null,
name = null,
value = null,
i = 0, //在for循环中使用
len = items.length;
//逐个将每一项添加到args对象中
for (i = 0; i < len; i++) {
item = items[i].split("=");
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]);
if (name.length) {
args[name] = value;
}
}
return args;
}
2.位置操作
使用location对象可以通过很多方式来改变浏览器的位置。最常用方式:使用assign()
方法并为其传递一个URL
location.assign("http://www.baidu.com");
在改变浏览器位置的方法中,最常用的是设置location.href
属性。此外,修改location对象的其他属性(hash、search、jostname、pathname、port)也可改变当前加载的页面。
-
replace()
方法 用户不能回到前一个页面 -
reload()
方法 重新加载当前显示的页面
location.reload(); //页面会以最有效的方式重新加载(有可能从缓存中重新加载—)
location.reload(true) //强制从服务器重新加载
网友评论