window.location.href 属性用于获取或设置当前页面的完整 URL。它包含了协议(如 http:// 或 https://)、主机名、端口号(如果指定)、路径、查询字符串和哈希部分。
基本语法:
- 获取当前 URL:
let currentUrl = window.location.href; - 设置新 URL:
window.location.href = "https://www.example.com";
返回值:
- 字符串:返回当前页面的完整 URL,包括协议、主机名、路径、查询字符串和哈希部分。
示例:
假设当前页面的 URL 是:
https://www.example.com:8080/path?name=JohnDoe#section1
console.log(window.location.href);
// 输出: "https://www.example.com:8080/path?name=JohnDoe#section1"
如果页面的 URL 是:
https://www.example.com/path
console.log(window.location.href);
// 输出: "https://www.example.com/path"
设置 URL:
通过直接修改 window.location.href,可以实现页面重定向。浏览器会加载新的 URL,并且会将当前页面加入浏览器历史记录中。
// 跳转到新的页面
window.location.href = "https://www.example.com";
// 跳转到相对路径
window.location.href = "/newpage.html";
特点:
- 页面跳转:通过设置
window.location.href,浏览器会加载新的页面并将其添加到浏览器的历史记录中。 - 浏览器历史记录:当通过
href跳转页面时,浏览器会保存跳转前的页面,以便用户可以通过“后退”按钮返回。 - 页面重载:如果将
window.location.href设置为当前页面的 URL,页面会重新加载。
示例:页面重定向
// 让页面跳转到 Google
window.location.href = "https://www.google.com";
使用场景:
- 页面重定向:你可以在某些事件发生后,跳转到新的页面。
- 处理页面导航:在单页面应用(SPA)中,可能需要使用
href进行完整的页面重载。 - 动态链接构建:根据当前页面信息动态构建并跳转到新的 URL。
与其他 window.location 属性的对比:
window.location.assign(url):与window.location.href类似,但assign()方法是专门用于加载新的 URL,具有相同的行为。window.location.replace(url):与assign()和href相似,但replace()会替换当前页面在历史记录中的位置,不允许通过“后退”按钮返回到当前页面。window.location.pathname:仅返回 URL 的路径部分,不包括协议、主机名和查询字符串。
示例:构建动态跳转 URL
// 根据用户的输入构建一个 URL 并跳转
let query = "javascript";
window.location.href = `https://www.google.com/search?q=${query}`;
总结:
window.location.href获取当前页面的完整 URL。- 通过设置
window.location.href,你可以实现页面跳转,并将跳转记录到浏览器历史记录中。 - 如果你需要完整控制 URL 的导航或跳转,
href是最常用的方法。
如果你有具体的需求,或者想了解如何在项目中应用该属性,随时告诉我!
发表回复