Skip to content

MDN 文档

获取当前页面的 url 信息

了解 什么是 URL?

URL(Uniform Resource Locator) 的缩写, 翻译为中文就是 统一资源定位符, 它是用于标识互联网上信息资源位置的一种标准格式, URL 提供了一种标准化的 方式来指定网络资源的位置

了解 URL 构成

url-parts

有上图可以看到一个完整的 url 有以下几个小部分组成:

  • protocol: 协议(如:http/https/ftp)
  • user: 用户认证用户名(如:user1, 非必须)
  • pass: 用户认真密码(如:pass2 非必须)
  • hostname: 域名(如:www.baidu.com)
  • port: 端口(如:8080, 非必须不同协议有默认的端口 http:80 https:443)
  • pathname: 具体访问路径(如:/api/v1/users)
  • query: GET 的请求参数(如:a=1&b=2)
  • hash: 锚点(如: #head1)
text
http://user1:pass2@www.baidu.com:8080/api/v1/users?a=1&b=2#head1

多个部分组成构成另外一个名称:

JS 获取浏览器当前访问的 URL 信息

js
// http://user1:pass2@www.baidu.com:8080/api/v1/users?a=1&b=2#head1
location.href;

// http
location.protocol;

// www.baidu.com/api/v1/users
location.host;

// 8080
location.port;

// www.baidu.com
location.hostname;

// a=1&b=2
location.pathname;

// ?a=1&b=2
location.search;

// #head1
location.hash;

// user1
location.username;

// pass2
location.password;

JS 操作浏览器访问指定的 URL

js
// 让浏览器访问指定的 url, 并保留浏览器历史记录
// 注意二者有区别, window.open 支持更多参数
location.assign('https://github.com');
window.open('https://github.com');

// 让浏览器访问指定的 url, 但是不保留浏览器历史记录
// 那么也就是所, 点击回退按钮或者使用 history API
// 无法回退到这个页面
location.replace('https://gitlab.com');

// 重新加载 url(刷新), 注意 chrome 没有参数,
// 而 firefox 支持一个布尔类型的 forceGet 参数:
// location.reload(true) 表示强制从服务器获取资源,
// 不使用任何浏览器缓存
location.reload();

扩展: URL

主要是处理 url 字符串相关方法, 无法操作浏览器, 但是可以在 WebWorker 中使用 查看 MDN 文档 其中静态方法都是很常用的:

扩展: URLSearchParams

主要是处理 url 字符串总的 search 部分(如: ?a=1&b=2), 同样可在 WebWorker 中使用 在处理一些复杂的请求 GET 请求参数, 很可能会用到URLSearchParams, 那么对应的在处理 POST 请求参数会用到 FormData

扩展: GeoLocation API

虽然名字和 Location 很像但是和 Location 没有任何关系, 主要是用于获取设备经纬度位置相关功能的 API 查看 MDN 文档

Released under the MIT License.