Location - 表示其链接到的对象的位置(URL)

Location 接口表示其链接到的对象的位置(URL)。对其进行的更改将反映在与其相关的对象上。 DocumentWindow 接口都有这样一个链接的 Location,可分别通过 Document.locationWindow.location 访问,两者是同一个对象。

属性

Location 接口没有继承任何属性,但会实现 URLUtils 中的属性。

Location.href

一个 DOMString 包含整个 URL。如果更改,关联文档将导航到新页面。它可以设置与已关联文档不同的源。

Location.protocol

一个 DOMString,包含 URL 的协议方案,包括结尾的 ':'

Location.host

一个 DOMString,包含主机(即 hostname),':' 和 URL 的 port

Location.hostname

一个 DOMString,包含 URL 的域名。

Location.port

一个 DOMString,包含 URL 的端口号。

Location.pathname

一个 DOMString,包含开始的 '/' 和后面跟着的 URL 路径。

Location.search

一个 DOMString,包含一个 '?' 和后面跟着 URL 的参数或 “查询字符串”。现代浏览器提供了 URLSearchParamsURL.searchParams 以便很容易从查询字符串中解析出参数。

Location.hash

一个 DOMString,其中包含 '#' 和后跟着 URL 的片段标识符。

Location.username

一个 DOMString,包含在域名之前指定的用户名。

Location.password

一个 DOMString,包含在域名之前指定的密码。

Location.origin 只读

返回一个 DOMString,包含该 Location 的源地址的标准形式。

方法

Location 接口没有继承任何属性,但实现了 URLUtils 中的方法。

Location.assign()

加载在参数中指定的 URL。

Location.reload()

从当前 URL 重新加载资源。它的可选唯一参数是 Boolean,当它为 true 时,会使页面始终从服务器重新加载。如果是 false 或未指定,则浏览器可以从其缓存重新加载页面。

Location.replace()

用提供的 URL 替换当前的资源。与 assign() 方法的区别在于,在使用 replace() 之后,当前页面将不会保存在会话 History 中,这意味着用户将无法使用返回按钮来导航到它。

Location.toString()

返回包含整个 URL 的 DOMString。它是 URLUtils.href 的同义词,但它不能用于修改值。

实例

// 为此实例创建锚元素并使用 href 属性
// 更正确的操作方法是访问相应的 URL 并使用 document.location 或 window.location 获取以下参数
var url = document.createElement('a');
url.href = 'https://developer.mozilla.org:8080/en-US/search?q=URL#search-results-close-container';
console.log(url.href);      // https://developer.mozilla.org:8080/en-US/search?q=URL#search-results-close-container
console.log(url.protocol);  // https:
console.log(url.host);      // developer.mozilla.org:8080
console.log(url.hostname);  // developer.mozilla.org
console.log(url.port);      // 8080
console.log(url.pathname);  // /en-US/search
console.log(url.search);    // ?q=URL
console.log(url.hash);      // #search-results-close-container
console.log(url.origin);    // https://developer.mozilla.org:8080

规范

规范 状态 备注
HTML Living Standard
Location 的定义
现行的标准 自从 HTML5 以来没有变化。
HTML5
Location 的定义
推荐 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 支持 支持 支持 支持 支持 支持
assign 支持12 支持 支持 支持 支持
hash 支持1222 支持 支持 支持
host 支持1222 支持 支持 支持
hostname 支持1222 支持 不支持 支持
href 支持1222 支持 支持 支持
origin 支持1226111210 支持3
password 支持 未知26 未知 未知 未知
pathname 支持12224 支持5 支持 支持
port 支持1222 支持 支持 支持
protocol 支持1222 支持 支持 支持
reload 支持126 支持 支持6 支持 支持
replace 支持12 支持 支持 支持 支持
search 支持12227 支持 支持 支持
toString52 支持22118 未知 未知
username 支持 未知26 未知 未知 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持 未知 未知 支持 未知 支持 支持
assign 支持 支持 未知 支持 未知 支持 支持
hash 支持 支持 未知22 未知 支持 支持
host 支持 支持 未知22 未知 支持 支持
hostname 支持 支持 未知22 未知 不支持 支持
href 支持 支持 未知22 未知 支持 支持
origin 支持 支持 未知261 未知 未知5
password 支持 支持 未知26 未知 未知 未知
pathname 支持 支持 未知224 未知 支持 支持
port 支持 支持 未知22 未知 支持 支持
protocol 支持 支持 未知22 未知 支持 支持
reload 支持 支持 未知 支持 未知 支持 支持
replace 支持 支持 未知 支持 未知 支持 支持
search 支持 支持 未知227 未知 支持 支持
toString5252 未知22 未知 未知 未知
username 支持 支持 未知26 未知 未知 未知

1. 在 Firefox 49 之前,使用 blob 协议的 URL 结果错误地返回 null

2. 内网(Intranet)站点设置为兼容性视图时,它将模拟 IE7 并省略了 window.location.origin

3. 根据 Apple 的文档,自 Safari 10(桌面版和移动版)以来都支持 window.location.origin,但该功能似乎也存在于某些旧版本中。因此,无法可靠地确定支持此功能的确切版本。

4. 在 Firefox 53 之前,pathname 属性返回错误的 URL 部分。例如,对于 http://z.com/x?a=true&b=false 的网址,pathname 属性将返回 '/x?a=true&b=false',而不是返回 '/x'

5. Internet Explorer 不提供路径名中的前导斜杠字符,(例如返回 docs/Web/API/Location 而不是 /docs/Web/API/Location)。

6. 如果添加到 “受信任的站点” 的页面包含跨源 iframe,则从 iframe 中调用 reload() 会重新加载受信任的页面(换句话说,首页重新加载,而不是 iframe)。

7. 在 Firefox 53 之前,search 属性返回了 URL 的错误部分。例如,对于 http://z.com/x?a=true&b=false 的网址,search 将返回 '',而不是分别返回 '?a=true&b=false'

8. 内网(Intranet)站点设置为兼容性视图时,它将模拟 IE7 并省略了 window.location.toString

相关链接