## 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 原生函數