如何用BOM获取当前页面的URL?

来源:APP编程网作者:大卫头衔:程序员
导读:本期聚焦于小伙伴创作的《如何用BOM获取当前页面的URL?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何用BOM获取当前页面的URL?》有用,将其分享出去将是对创作者最好的鼓励。

在前端开发中,BOM(浏览器对象模型)的window.location对象是获取当前页面URL的核心接口,它包含了当前页面URL的各个组成部分,开发者可以通过访问其不同属性拿到需要的信息。

如何用BOM获取当前页面的URL?

window.location核心属性说明

window.location是一个包含当前页面URL信息的对象,它的常用属性如下:

属性名说明示例(假设当前URL为https://ipipp.com:8080/path/page.html?name=test#section)
href完整的URL字符串https://ipipp.com:8080/path/page.html?name=test#section
protocolURL的协议部分,包含末尾的冒号https:
host主机名和端口号ipipp.com:8080
hostname主机名,不包含端口号ipipp.com
port端口号,如果没有显式端口则返回空字符串8080
pathnameURL的路径部分,以斜杠开头/path/page.html
searchURL的查询参数部分,以问号开头?name=test
hashURL的锚点部分,以井号开头#section

获取完整URL的示例

如果需要获取当前页面的完整URL,直接访问window.location.href即可,也可以省略window前缀,因为location是全局对象的属性。

// 获取当前页面的完整URL
const fullUrl = location.href;
console.log(fullUrl); // 输出当前页面的完整URL字符串

// 也可以显式使用window前缀,效果一致
const fullUrl2 = window.location.href;
console.log(fullUrl2);

获取URL各部分的示例

如果只需要URL的某个组成部分,可以访问对应的属性,以下是常见场景的代码示例:

// 获取URL的协议
const protocol = location.protocol;
console.log(protocol); // 输出如 "https:"

// 获取主机名(不含端口)
const hostname = location.hostname;
console.log(hostname); // 输出如 "ipipp.com"

// 获取查询参数部分
const searchParams = location.search;
console.log(searchParams); // 输出如 "?name=test&age=18"

// 获取锚点部分
const hash = location.hash;
console.log(hash); // 输出如 "#section"

注意事项

  • window.location的属性都是可读可写的,如果修改href属性,页面会跳转到新的URL,例如location.href = "https://ipipp.com"会让页面跳转到ipipp.com首页。
  • 如果URL中没有显式端口,port属性会返回空字符串,比如访问https://ipipp.com时,location.port返回空字符串。
  • 如果需要解析查询参数为对象,可以结合URLSearchParamsAPI使用,示例如下:
// 解析查询参数为对象
const params = new URLSearchParams(location.search);
const name = params.get("name");
console.log(name); // 输出查询参数中name对应的值

总结

通过BOM的window.location对象可以轻松获取当前页面的URL及各个组成部分,开发者可以根据实际需求选择对应的属性。完整URL用href,协议用protocol,主机相关用hosthostname,路径用pathname,查询参数用search,锚点用hash,掌握这些属性的用法就能应对大部分URL获取的需求。

BOMwindow_locationURL获取前端开发修改时间:2026-07-16 13:18:28

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。