window.location.host 与 window.location.hostname 的区别

在前端开发中,我们常常需要获取当前页面的 URL 相关信息。其中,window.location.hostwindow.location.hostname 是两个常用的属性,它们都可以用来获取当前页面的主机名(即域名),但二者还是有所不同。

window.location.host

window.location.host 包含了当前页面 URL 中的主机名和端口号(如果有)。例如:假设当前页面 URL 为 https://www.example.com:8080/path/to/page.html,那么 window.location.host 的值就是 www.example.com:8080

下面是获取 window.location.host 的示例代码:

----- ---- - ---------------------
------------------ -- -- ----------------------

window.location.hostname

window.location.hostname 只包含了当前页面 URL 中的主机名。在上例中,window.location.hostname 的值就是 www.example.com

下面是获取 window.location.hostname 的示例代码:

----- -------- - -------------------------
---------------------- -- -- -----------------

区别与使用场景

二者的区别很明显了:window.location.host 包含了端口号,而 window.location.hostname 则不包含。因此,当我们需要访问当前页面主机名时,应该优先选择 window.location.hostname

一般情况下,我们只需要获取主机名,而不需要端口号。但有时候,我们也需要在 URL 中包含端口号,比如在使用 WebSocket 进行通信时。这时候就可以使用 window.location.host

下面是一个示例代码,演示了如何使用 window.location.hostwindow.location.hostname

----- ---- - ---------------------
----- -------- - -------------------------

------------------ ---------- -- -- ----------------------
---------------------- -------------- -- -- -----------------

-- ----- --- ----------------------- -
  --------------------------
  -- -- --------- -----
- ---- -
  ---------------------------
  -- -------------------
-

总结

window.location.hostwindow.location.hostname 都是获取当前页面主机名的属性,但它们的具体含义和用途有所不同。在实际开发中,我们应该根据具体情况灵活选择使用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/27731