location 是最有用的 BOM 对象之一,提供了当前窗口中加载文档的信息,以及通常的导航功能。这个对象独特的地方在于,它既是 window 的属性,也是 document 的属性。也就是说,window.location 和 document.location 指向同一个对象。
location 对象不仅保存着当前加载文档的信息,也保存着把 URL 解析为离散片段后能够通过属性访问的信息。这些解析后的属性在下表中详细说明(location 前缀是必需的)。
假设浏览器当前加载的 URL 是 http://foouser:[email protected]:80/WileyCDA/?q=javascript#contents,location 对象的内容如下表所示。
| 属性 | 示例值 | 说明 |
|---|---|---|
| location.hash | "#contents" | URL 散列值 (井号后跟零或多个字符),如果没有则为空字符串 |
| location.host | "www.wrox.com:80" | 服务器名及端口号 |
| location.hostname | "www.wrox.com" | 服务器名 |
| location.href | "http://www.wrox.com:80/WileyCDA/?q=javascript#contents" | 当前加载页面的完整 URL。location 的 toString() 方法返回这个值 |
| location.pathname | "/WileyCDA/" | URL 中的路径和 (或) 文件名 |
| location.port | "80" | 请求的端口。如果 URL 中没有端口,则返回空字符串 |
| location.protocol | "http:" | 页面使用的协议。通常是 "http:" 或 "https:" |
| location.search | "?q=javascript" | URL 的查询字符串。这个字符串以问号开头 |
| location.username | "foouser" | 域名前指定的用户名 |
| location.password | "barpassword" | 域名前指定的密码 |
| location.origin |

