Location

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

* 此特性的某些部分可能存在不同级别的支持。

Location 接口代表其链接对象的 URL(即其位置)。对它的修改会反映在其关联对象上。DocumentWindow 接口都有一个链接的 Location 对象,分别可通过 Document.locationWindow.location 访问。

Location 结构

将鼠标悬停在下方的 URL 片段上,以突出显示它们的含义

实例属性

Location.ancestorOrigins 只读

一个静态的 DOMStringList,包含与给定 Location 对象关联的文档的所有祖先浏览上下文的源(origin),顺序相反。

Location.href

一个 stringifier,返回一个包含整个 URL 的字符串。如果被修改,关联的文档将导航到新页面。它可以从与关联文档不同的源设置。

Location.protocol

一个字符串,包含 URL 的协议方案,包括末尾的 ':'

Location.host

一个字符串,包含 URL 的主机,即 主机名':'端口

Location.hostname

一个字符串,包含 URL 的域名。

Location.port

一个字符串,包含 URL 的端口号。

Location.pathname

一个字符串,包含一个初始的 '/',后跟 URL 的路径,不包括查询字符串或片段标识符。

Location.search

一个字符串,包含一个 '?',后跟 URL 的参数或“查询字符串”。现代浏览器提供了 URLSearchParamsURL.searchParams,可以轻松地从查询字符串中解析出参数。

Location.hash

一个字符串,包含一个 '#',后跟 URL 的片段标识符。

Location.origin 只读

返回一个字符串,包含特定位置的源(origin)的规范形式。

实例方法

Location.assign()

加载参数中提供的 URL 资源。

Location.reload()

重新加载当前 URL,类似于刷新按钮。

Location.replace()

用提供的 URL 替换当前资源(重定向到提供的 URL)。与 assign() 方法和设置 href 属性的区别在于,使用 replace() 后,当前页面将不会保存在会话 History 中,这意味着用户将无法使用“后退”按钮导航回它。

Location.toString()

返回一个包含整个 URL 的字符串。它是 Location.href 的同义词,但不能用于修改该值。

示例

js
// location: https://mdn.org.cn:8080/en-US/search?q=URL#search-results-close-container
const loc = document.location;
console.log(loc.href); // https://mdn.org.cn:8080/en-US/search?q=URL#search-results-close-container
console.log(loc.protocol); // https:
console.log(loc.host); // developer.mozilla.org:8080
console.log(loc.hostname); // developer.mozilla.org
console.log(loc.port); // 8080
console.log(loc.pathname); // /en-US/search
console.log(loc.search); // ?q=URL
console.log(loc.hash); // #search-results-close-container
console.log(loc.origin); // https://mdn.org.cn:8080

location.assign("http://another.site"); // load another page

规范

规范
HTML
# the-location-interface

浏览器兼容性

另见