如何在 JavaScript 中提取 URL 的主机名部分

新手上路,请多包涵

有没有一种非常简单的方法可以从完整的 URL 开始:

document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"

并仅提取主机部分:

aaa.bbb.ccc.com

必须有一个 JavaScript 函数可以可靠地执行此操作,但我找不到它。

原文由 Dustin Getz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 616
2 个回答

假设您有一个带有此地址的页面: http://sub.domain.com/virtualPath/page.htm 。在页面代码中使用以下内容来实现这些结果:

  • window.location.host :你会得到 sub.domain.com:8080sub.domain.com:80

  • window.location.hostname :你会得到 sub.domain.com

  • window.location.protocol : 你会得到 http:

  • window.location.port :你会得到 808080

  • window.location.pathname :你会得到 /virtualPath

  • window.location.origin :你会得到 http://sub.domain.com *****

更新:关于 .origin

\*\*\*\*\* 正如 参考文献 所述, window.location.origin 的浏览器兼容性尚不清楚。我已经在 chrome 中检查了它,如果端口不是 80,它返回 http://sub.domain.com:port ,如果端口是 80,它返回 http://sub.domain.com

特别感谢@torazaburo 向我提及这一点。

原文由 Amin Saqi 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以连接位置协议和主机:

 var root = location.protocol + '//' + location.host;

对于 url,假设 'http://stackoverflow.com/questions' ,它将返回 'http://stackoverflow.com'

原文由 Christian C. Salvadó 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题