`window.location` 是 JavaScript 中与浏览器的当前 URL 相关的一个对象属性。它提供了一个访问和修改当前浏览器窗口的 URL 的方式。这个对象包含了关于当前 URL 的各种信息,如协议(http 或 https)、主机名、路径、查询字符串等。同时,它也允许你对这些属性进行修改以重定向浏览器到新的 URL。
以下是 `window.location` 的一些重要属性和方法:
### 属性:
* `protocol`:返回当前 URL 的协议(例如 `http:` 或 `https:`)。
* `hostname`:返回当前 URL 的主机名(例如 `www.example.com`)。
* `port`:返回当前 URL 的端口号(如果有的话)。对于标准的 HTTP 和 HTTPS,这个属性通常不会返回任何值,因为这些协议使用标准的端口号(通常是 80 或 443)。
* `pathname`:返回当前 URL 的路径部分(例如 `/page/`)。
* `search`:返回查询字符串部分(包括问号),例如 `?param=value`。
* `hash`:返回 URL 的锚点部分(包括 `#`),例如 `#section`。
### 方法:
* `assign(URL)`:加载新的文档到当前窗口。等同于点击一个指向该 URL 的链接。
* `reload(forceReload)`:刷新当前页面。当传入参数 `true` 时,它会从服务器上重新加载页面;否则,如果页面已经在缓存中,则可能只从缓存中加载。
示例:
假设当前的 URL 是 `https://www.example.com/page/?param=value#section`,你可以通过以下方式访问这些属性:
```javascript
console.log(window.location.protocol); // 输出 "https:"
console.log(window.location.hostname); // 输出 "www.example.com"
console.log(window.location.pathname); // 输出 "/page/"
console.log(window.location.search); // 输出 "?param=value"
console.log(window.location.hash); // 输出 "#section"
```
你也可以修改这些属性来改变 URL 并导航到新的页面或部分。例如,通过以下代码可以将用户重定向到另一个页面:
```javascript
window.location.assign('https://www.another-example.com');
```
请注意,直接修改这些属性可能会引发浏览器行为或触发网络请求。在修改它们时要谨慎处理潜在的安全和用户体验问题。