当然!下面是对 window.location.href
的详细介绍与常见用法,适用于前端开发、跳转控制、路由分析等场景。
🔍 window.location.href
的介绍与使用
📌 一、什么是 window.location.href
?
window.location.href
是 JavaScript 中用于获取或设置当前文档的 URL(即浏览器地址栏的链接)的属性。
它是 window.location
对象中的一个属性,等价于 location.href
,可以用于:
- 获取当前页面 URL
- 跳转到新的 URL(即页面重定向)
- 构造跳转逻辑或动态加载
📘 二、基本语法
// 获取当前页面的完整 URL
var url = window.location.href;
// 设置一个新地址,页面会跳转
window.location.href = "https://www.example.com";
🧩 三、使用场景详解
✅ 1. 获取当前页面地址
console.log(window.location.href);
// 输出示例:https://example.com/page?user=123
✅ 2. 跳转到新的页面(重定向)
window.location.href = "https://www.baidu.com";
效果:立即跳转到百度主页,相当于点击了一个链接。
✅ 3. 基于条件跳转
if (!loggedIn) {
window.location.href = "/login.html";
}
用于用户未登录时跳转到登录页面。
✅ 4. 带参数跳转(GET 请求模拟)
var userId = 42;
window.location.href = "/profile.html?id=" + userId;
🧪 四、与其他 location 属性的区别
属性 | 说明 | 示例 |
---|---|---|
location.href | 当前完整地址(可读写) | https://www.example.com/index.html |
location.hostname | 主机名 | www.example.com |
location.pathname | 路径部分 | /index.html |
location.search | 查询字符串 | ?id=123 |
location.hash | 哈希锚点 | #section1 |
location.port | 端口号 | 8080 |
location.protocol | 协议 | https: |
🚀 五、跳转与替换的对比
方法 | 说明 | 是否保留历史记录 |
---|---|---|
location.href = url | 跳转到新页面 | ✅ 会保留历史记录,可返回 |
location.assign(url) | 功能同上 | ✅ 会保留 |
location.replace(url) | 替换当前页面 | ❌ 不可回退 |
示例:
// 不可后退跳转
location.replace("https://example.com/logout.html");
⚠️ 六、注意事项
window.location.href
设置新值后,浏览器会 刷新页面并跳转,会中断当前脚本执行。- 出于安全性考虑,浏览器可能限制某些跨域跳转(例如某些 iframe 场景)。
- 使用前应考虑是否需要在前端或后端进行 URL 构造和安全校验。
🧠 七、实际应用示例
示例:构建一个跳转按钮
<button onclick="goToDocs()">跳转到文档</button>
<script>
function goToDocs() {
window.location.href = "https://docs.example.com";
}
</script>
发表回复