## 8.2 location对象
location对象提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。
它既是window对象的属性,也是document对象的属性。
**用处:**
* 保存当前**文档的信息**
* 将**URL解析**为独立的片段,让开发人员可以通过不同的属性访问这些片段。
**location对象的所有属性**
| 属性| 例子 |描述|
|---|---|---|
| hash | `"#contents"` | 返回URL中的hash(#号后跟零或多个字符),如果URL中不包含散列,则返回字符串|
| host | `“www.wrox.com:80"` |返回服务器名称和端口号(如果有)|
| hostname | `“www.wrox.com"` | 返回不带端口号的服务器名称|
| href |`“http:/www.worx.com"` | 返回当前加载页面的完整URL。而location对象的toString()也返回这个值|
| pathname | `“/WileyCDA/"` | 返回URL中的目录和(或)文件名|
| port| `“8080" `|返回URL中指定的端口号。如果URL中不包含端口号,则返回空字符串|
| protocol | `“http:"` |返回页面使用的协议。通常是http:或https:|
| search | `“?q=javascript"` | 返回URL的查询字符串。以问号开头|
### 8.2.1 查询字符串参数
尽管location.search返回从问号到URL末尾的所有内容,但却没办法逐个访问其中的每个查询字符串参数。为此,可以像下面这样创建一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象:
~~~
function getQueryStringArgs() {
//取得查询字符串并去掉开头的问号
var qs = (location.search.length > 0 ? location.search.substring(1) : ''),
//保存数据的对象
args = {},
//取得每一项
itmes = qs.length ? qs.split('&') : [],
item = null,
name = null,
value = null,
//在for循环中使用
i = 0,
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;
}
~~~
### 8.2.2 位置操作
**Location 对象方法**
| 属性 | 描述 |
|---|---|
| assign() | 加载新的文档,并在浏览器的历史记录中生成一条记录。 |
| reload() | 重新加载当前文档。 |
| replace() | 用新的文档替换当前文档,不会生成历史记录。*加true参数从服务器重新加载,否则有可能从缓存加载。* |
- 前言
- 第一章 JavaScript简介
- 第三章 基本概念
- 3.1-3.3 语法、关键字和变量
- 3.4 数据类型
- 3.5-3.6 操作符、流控制语句(暂略)
- 3.7函数
- 第四章 变量的值、作用域与内存问题
- 第五章 引用类型
- 5.1 Object类型
- 5.2 Array类型
- 5.3 Date类型
- 5.4 基本包装类型
- 5.5 单体内置对象
- 第六章 面向对象的程序设计
- 6.1 理解对象
- 6.2 创建对象
- 6.3 继承
- 第七章 函数
- 7.1 函数概述
- 7.2 闭包
- 7.3 私有变量
- 第八章 BOM
- 8.1 window对象
- 8.2 location对象
- 8.3 navigator、screen与history对象
- 第九章 DOM
- 9.1 节点层次
- 9.2 DOM操作技术
- 9.3 DOM扩展
- 9.4 DOM2和DOM3
- 第十章 事件
- 10.1 事件流
- 10.2 事件处理程序
- 10.3 事件对象
- 10.4 事件类型
- 第十一章 JSON
- 11.1-11.2 语法与序列化选项
- 第十二章 正则表达式
- 12.1 创建正则表达式
- 12.2-12.3 模式匹配与RegExp对象
- 第十三章 Ajax
- 13.1 XMLHttpRequest对象
- 你不知道的JavaScript
- 一、作用域与闭包
- 1.1 作用域
- 1.2 词法作用域
- 1.3 函数作用域与块作用域
- 1.4 提升
- 1.5 作用域闭包
- 二、this与对象原型
- 2.1 关于this
- 2.2 全面解析this
- 2.3 对象
- 2.4 混合对象“类”
- 2.5 原型
- 2.6 行为委托
- 三、类型与语法
- 3.1 类型
- 3.2 值
- 3.3 原生函数